J Driver

G Thomas Professeur

Je Remercie

Professeur Jean-Charles Billaut

Spécialités doctorales

sans qui ce travail n'aurait pas vu le jour, pour m'avoir encadrée, pour leur rigueur, leur expérience, leurs précieuses orientations et leurs conseils avisés qui m'ont guidée tout au long du parcours. Mes remerciements les plus vifs, empreints d'une grande reconnaissance à Pascal BOUVRY, Professeur à l'Université du Luxembourg, pour m'avoir si bien accueillie au sein de son équipe durant la période passée à l'Université. Je les remercie aussi pour leur soutien et les moyens mis à ma disposition.

compréhension.

Je suis aussi reonnaissante à l'Ecole Nationale Supérieure des Mines de Saint-Etienne et l'Université du Luxembourg pour les moyens déployés pour la bonne réalisation de ce travail.

Mes remerciements vont à leurs personnels que j'ai croisés ou cotoyés pour leur gentillesse et leur professionnalisme. Je témoigne, plus particulièrement, ma reconnaissance aux membres des équipes SFL et ILIAS de m'avoir offert un environnement de travail agréable et épanouissant et pour leur soutien.

Je témoigne mon ineffable reconnaissance à mes proches pour leur soutien infaillible et pour avoir fait de moi la personne heureuse que je suis. Je remercie en particulier ma famille et encore plus particulièrement mon père, ma mère , mes frères et mes soeurs qui ont été présents pour moi depuis toujours.

Pour finir, je remercie toute personne ayant contribué de loin ou de près à l'existence de ce travail.

Je garderai toujours un vif souvenir de cette merveilleuse aventure qui m'a beaucoup apporté et m'a surtout tant appris sur moi-même. J'ai essayé d'en vivre pleinement et d'en apprécier chaque moment même les plus durs.

List of Tables

Introduction générale -General introduction

Assurer une grande compétitivité devient une nécessité pour les entreprises ; et ce afin de faire face à la concurrence. Pour les entreprises de production ou de services, résoudre le problème d'ordonnancement de façon efficace est une expression de cette compétitivité ; il en résulte notamment la réduction des coûts et des délais.

La théorie de l'ordonnancement est une branche de la recherche opérationnelle et de la gestion de production. Ainsi, des modèles mathématiques et des méthodes de résolution sont conçues pour résoudre les problèmes posés. Un problème d'ordonnancement est défini par un ensemble de travaux à réaliser sur un ensemble de ressources ; de sorte qu'une fonction objectif soit optimisée. Ainsi, il s'agit de situer les travaux à réaliser par rapport à leur affectation aux ressources, au séquencement de leur passage sur chaque ressource, et à leur datage.

Les champs d'application de la théorie d'ordonnanacement sont diverses, notamment dans le secteur industriel tel que l'organisation de la production dans les entreprises manufacturières, celui de l'informatique tels que le partage de la mémoire, le choix des tâches à envoyer aux processeurs, et celui de l'organisation de grands projets de constructions de travaux publics tels que les chantiers routiers, ferroviaires, navales, aéronautiques.

Pour cela, les problèmes d'ordonnancement ont été largement étudiés, par des informaticiens, des automaticiens et des spécialistes de la recherche opérationnelle, depuis près d'une soixantaine d'années et plus particulièrement durant les quatres dernières décennies. Les problèmes traités par la théorie de l'ordonnancement sont classés en différentes catégories, comme les problèmes pouvant se modéliser en des problèmes d'ordonnancement d'ateliers de production (problème à une machine, les problèmes à machines parallèles, les problèmes de type flow-shop, job-shop, open-shop) et et les problèmes d'ordonnancement de projets.

Objectif de la thèse

La majeure partie des études des problèmes d'ordonnancement se placent dans le contexte où les ressources sont disponibles en permanence. Ce qui en réalité n'est pas toujours le cas. Les différentes ressources qu'elles soient humaines ou matérielles peuvent, pour diverses raisons, être indisponibles. Les dates et les durées des indisponibilités peuvent être connues dans certains cas : congés de personnel, opérations de maintenance sur les machines etc (contexte déterministe) ; notre étude traite essentiellement ce contexte. Elles ne sont pas prévisibles dans les cas tels que des pannes de machines ou d'absences de personnel, pour des raisons médicales par exemple (contexte non déterministe) ; notre étude traite aussi ce contexte lorsqu'il est possible de refaire l'ordonnancement une fois les indisponibilités connues.

La présence de ces 'trous' dans un planning prévisionnel influe de manière significative sur le processus de production de biens ou de services et tout ordonnancement réaliste se doit d'en tenir compte. Une manière de pallier l'indisponibilité d'une ressource est d'affecter sa charge de travail à une ressource de remplacement. Mais une ressource capable d'assurer cette prise en charge, aussi bien en terme de capacité qu'en terme de compétence, n'existe pas forcément.

Il est ainsi nécessaire de trouver la manière la plus appropriée de séquencer les tâches sur les ressources de façon à tenir compte de leurs indisponibilités et de l'ordre entre les tâches. Et bien qu'un plus grand effort de recherche soit déployé pour étudier les problèmes avec contraintes de disponibilité des ressources, car ils sont plus réalistes, le nombre de travaux qui leurs sont dédiés dans la littérature sur l'ordonnacement reste toujours pas considérable surtout si l'on considère des périodes d'indisponibilité flexibles.

Dans cette thèse, nous nous intéressons plus particulièrement aux problèmes de type jobshop avec des ressources non disponibles en continu, périodes d'indisponibilité flexibles et des tâches pouvant éventuellement être interrompues par les périodes d'indisponibiité. Le job-shop est l'un des problèmes de la théorie de l'ordonnancement le plus traité ; par contre sa grande complexité fait de lui l'un des problèmes de l'optimisation combinatoire les plus difficiles à résoudre ; il est donc indispensable de savoir si l'on doit privilégier la qualité de la solution recherchée ou la rapidité du temps de calcul, ou trouver un compromis. Ceci étant aussi lié à la taille des instances traitées.

Le but de cette thèse est donc de développer des méthodes de résolution efficaces pour les problèmes d'ordonnancement rencontrés dans les systèmes flexibles de production ; et intégrant des contraintes pratiques telles que la limitation des disponibilités des ressources. Notons que l'étude de cette dernière n'est que récente malgré sa petinence au niveau industriel. En effet, cette contrainte est souvent negligée par les chercheurs ou les oblige le plus souvent à se limiter à des problèmes de tailles réduites ou à des problèmes basiques. Ceci étant du au fait que son intégation rend le problème d'ordonnancement nettement plus difficile à résoudre. Il y va sans dire qu'inclure la flexibilité sur les ressources et les tâches augmente la complexité du problème. Nous nous plaçons ainsi dans le cadre de l'étude de problèmes plus généraux, donc plus complexes, que ceux qui sont les plus présents dans la littérature. Au delà de l'apport pour les entreprises, il est évident que si l'on sait traiter les cas des systèmes flexibles, on sait de ce fait traiter les systèmes classiques. Aussi, cela devrait nous permettre d'élargir nos domaines d'investigation en y intégrant les problèmes d'ordonnancement rencontrés dans les services.

Cependant, avant de s'attaquer aux systèmes flexibles, nous nous intéressons en premier lieu à l'étude des problèmes de base avec la prise en compte de contraintes de disponibilité de ressources Cette flexibilitité peut être relative à au moins l'un des points suivants :

• Déplacer la période d'indisponibilité dans sa fenêtre de temps; définie par sa date de début au plus tôt et sa date de fin au plus tard, permet la création d'un temps libre sur la ressource pour effectuer la tâche plus tôt.

• La durée de la période d'indisponibilité d'une ressource : En fonction d'une prise de décision managériale, une priorité peut être donnée à la production au dépend du planning d'indisponibilité des ressources.

• Une tâche peut être interrompue par une période d'indisponibilité, ensuite reprise avec une éventuelle pénalité, dès que la ressource est à nouveau disponible. Ceci peut être le cas de produits regroupés en lots.

• Une extension du problème étudié, est celui de l'ensemble de ressources pouvant effectuer une tâche donnée (cette dernière nécessite uniquement une ressource pour l'exécuter):

Dans le problème classique, une opération nécessite exactement une seule ressource définie à priori pour l'effectuer. Lorsque cette ressource est non-disponible, l'opération doit attendre que la ressource redevienne disponible à nouveau. Ainsi, l'intérêt pratique de ce types d'ateliers flexibles est qu'ils permettent de modéliser de nombreux problèmes d'ordonnancement rencontrés dans le secteur des services, où il est aussi souvent nécessaire de déterminer la bonne affectation pour chaque tâche. En effet, les ressources sont souvent des personnes, et la flexibilité dans l'exécution des tâches vient d'une part du fait que plusieurs personnes de même qualification peuvent effectuer la même tâche, et d'autre part de la polyvalence des personnes qui peuvent faire différents types de tâches.

Organisation du manuscrit

Le manuscrit est organisé en deux parties:

Ordonnancement de production

La théorie de l'ordonnancement est une branche de la recherche opérationnelle et de la gestion de production. Un problème d'ordonnancement est défini par un ensemble de jobs (tasks) à réaliser sur un ensemble de ressources (resources) ; de sorte qu'une fonction objectif (objective function) soit optimisée.

Il s'agit, donc, de situer les jobs à réaliser par rapport à leur affectation aux ressources, au séquencement de leur passage sur chaque ressource, et à leur datage. Un ordonnancement peut être prédictif (predictive) ou statique (static) lorsqu'il s'appuie sur des données connues a priori; il peut toutefois être réactif (reactive), dynamique (dynamic) ou temps réel (real time) lorsqu'il doit s'adapter à des données intégrées a posteriori ou en temps réel.

Les problèmes d'ordonnancement ont été largement étudiés ces dernières décennies ; et ce pour la diversité de leurs champs d'application, notamment le secteur industriel (Pinedo [START_REF] Pinedo | Scheduling : Theory, Algorithms, and Systems[END_REF]) et celui de l'informatique (Blazewicz et al [START_REF] Blazewicz | Scheduling Computer and Manufacturing Processes[END_REF]). Parmi les nombreux ouvrages de référence qui ont été publiés, on trouve Conway et al. [START_REF] Conway | Theory of Scheduling[END_REF], Baker [START_REF] Baker | Introduction to Sequencing and Scheduling[END_REF], Rinnooy Kan [START_REF] Rinnooy Kan | Machine Scheduling Problems: Classification, Complexity and Computations[END_REF], French [START_REF] French | Sequencing and Scheduling: An Introduction to the Mathematics of the Job-Shop[END_REF], Carlier et Chrétienne [START_REF] Carlier | Les Problèmes dordonnancement[END_REF], Tanaev et al. [START_REF] Tanaev | Scheduling theory. Single-stage systems[END_REF] et [TGS94b],

Brucker [START_REF] Brucker | Scheduling Algorithms[END_REF], Esquirol et Lopez [START_REF] Esquirol | Lordonnancement. Economica[END_REF], Lopez et Roubellat [START_REF] Lopez | Ordonnancement de la Production[END_REF], Leung [Leu04], Blazewicz

Généralités

La terminologie utilsée en ordonnancement est issue du contexte industriel en particulier les ateliers de fabrication manufacturière.

L'ordonnancement est le processus de répartition, dans le temps, de tâches sur des ressources, et dont l'ensemble est soumis à certaines contraintes ; et ce afin d'optimiser un critère donné ou un compromis entre plusieurs critères exprimés par des fonctions objectif et qui permettent d'apprécier la qualité de tout séquencement de ces tâches appelé ordonnancement (schedule).

Ces critères à optimiser peuvent être liés à l'utilisation des ressources telles que la charge des machines d'un atelier, ou au temps comme la date d'achèvement de la réalisation des jobs (makespan). Le critère est dit régulier lorsque l'avancement de l'exécution d'une tâche, sans en retarder d'autres, ne dégrade pas la valeur du critère; autrement dit s'il est fonction décroissante des dates d'achèvement des opérations.

Lorsque la quantité d'une ressource diminue au fur et à mesure de son utilisation (matières premières, financement d'un projet, ...), elle est dite consommable (consumable). Lorsqu'elle demeure disponible en même quantité (équipe, machine d'un atelier), elle est dite renouvelable (renewable) ou non-partageable (non-shared). Lorsqu'elle ne peut exécuter qu'une opération à la fois, elle est dite disjonctive (disjunctive) ; autrement elle est dite cumulative.

Problèmes d'ordonnancement d'atelier

Dans ce qui suit nous utiliserons la terminologie job, machine (au lieu de tâche et ressource).

Le passage d'un job sur une machine est appelé opération (operation). Cette dernière possède des caractéristiques temporelles : sa durée opératoire (processing time) (

Problèmes d'ordonnancement d'atelier

Les problèmes sont caractérisés par le nombre de machines dans l'atelier et leur disposition, des nombres d'opérations composant les jobs, et des ordres de leurs passages sur les machines ; ainsi que le nombre de machines pouvant réaliser une opération.

Dans les problèmes d'ordonnancement d'atelier, les ressources sont disjonctives (Esquirol et Lopez, [START_REF] Esquirol | Lordonnancement. Economica[END_REF]) ou de capacité unitaire et sont indépendantes les unes des autres. Il en est de même pour les jobs.

On distingue donc les problèmes à une machine et les problèmes multi-machines (machines parallèles, flow shop, flow shop hybride, job shop, job shop flexible et open shop).

Problème à une machine

Problème multi-machines à machines parallèles

Problèmes d'ordonnancement d'atelier

Il en existe trois types dans la littérature :

• Les problèmes à machines identiques : les durées opératoires sont égales et ne dépendent donc pas des machines,

• Les problèmes à machines uniformes : la durée d'une opération varie uniformément en fonction de la performance de la machine choisie,

• Les problèmes à machines indépendantes (non liées) : les durées opératoires dépendent complètement des machines utilisées.

Problèmes d'atelier multi-machines à cheminement unique (Flow shop)

Problème de type Flow shop

Ici les machines sont disposées en série ; et les jobs à réaliser sont composés de plusieurs opérations et visitent toutes les machines selon une gamme opératoire (job routing) (gamme de fabrication) unique (dans le même ordre ou flôt unidirectionnel). Cette dernière est une donnée du problème (Voir figure 1.1). Lorsque le séquencement des jobs est le même sur toutes les machines, le problème est celui du flow shop de permutation.

Problème du Flow shop hybride (flexible)

C'est une généralisation des environnements du flow shop et des machines parallèles. L'atelier est organisé en étages constitués d'un ensemble de machines en parallèle. Cependant, une opération n'en nécessite qu'une seule pour son exécution. Les différents jobs à réaliser doivent passer sur tous les étages dans le même ordre. Ceci revient donc à trouver pour chaque job la machine exécutant l'opération associée à chaque étage, ainsi que les dates d'exécution des différentes opérations.

Problèmes d'atelier multi-machines à cheminements multiples (Job shop)

Problème de type Job shop C'est une généralisation de celui du flow shop. En effet, l'ordre de passage des jobs sur les machines peut être différent d'un job à l'autre (flôt multi-directionnel ; voir figure 1.1). Lorsqu'un job peut passer sur une machine plus d'une fois, la gamme est dite bouclante (recirculation).

Problème du Job shop flexible

C'est une extension du problème classique du job shop. La différence est que pour le problème du job shop flexible, chaque opération peut être effectuée par une seule machine dans un ensemble de machines. Le problème est ainsi de déterminer à la fois une affectation et un séquencement des opérations sur les machines en fonction de l'objectif à atteindre.

Les approches hiérarchiques (hierarchical approaches) résolvent le problème d'abord par l'affectation des opérations aux machines et ensuite du séquencement sur chaque machine. Les approches intégrées (integrated approaches) résolvent simultanément les problèmes d'affectation et de séquencement.

Le problème du job shop flexible est pertinent dans au moins deux types de systèmes de production. Dans les systèmes manufacturiers flexibles, les machines peuvent effectuer différents types d'opérations. Le deuxième type consiste en des ateliers avec des pools de machines parallèles, où les machines d'un pool peuvent effectuer uniquement un seul type d'opérations (machines dédiées). Le second type de systèmes peut être considéré comme un cas particulier du premier.

Problèmes d'atelier multi-machines à cheminements libres (Open shop)

L i = C i -d i , E i : avance (earliness) du job J i . E i = max(d i -C i , 0), T i : retard (tardiness) du job J i . T i = max(C i -d i , 0), U i : indicateur de retard (unit penalty) du job J i . U i = 1 si T i > 0 , U i = 0 sinon, O ij : j eme opération du job J i , t ij : date de début (starting date) de O ij , p ij : durée opératoire (processing time) de O ij , C ij : date de fin (completion date) de O ij , m : nombre de machines, M = {M 1 , M 2 ,
••, M m } : ensemble des machines de l'atelier.

Classification des problèmes d'ordonnancement

La notation la plus utilisée en ordonnancement, introduite par Graham et al. [START_REF] Graham | Optimization and approximation in deterministic sequencing and scheduling: a survey[END_REF],

décrit les problèmes d'ordonnancement en trois champs α|β|γ :

• α = α 1 α 2 : environnement des machines.

-α 1 : représente le type d'atelier. Il peut prendre les valeurs 1, -α 2 : représente le nombre de machines.

P , Q, R, F , F F , J, F J, O qui correspondent
-D'autres paramètres peuvent être rajoutés au champ α exemple h k (resp. h rk ) représente les k périodes d'indisponibilités dans un problème à une machine (resp.

sur la machine M r ).

• β : Ensemble des contraintes sur les jobs. On trouve, par exemple, :

-pmtn : la préemption est autorisée, -ppmtn : préemption partielle.

-prec : existence de contraintes générales de précedence entre les opérations, -p ij = p : toutes les durées opératoires sont égales à p, -r i : chaque job J i possède une date de disponibilité, -d i : chaque job J i possède une date échue, -S ii ′ : temps de préparation dépendant de la séquence entre les jobs

J i et J i ′ , - S
∑ i w i T i : somme pondéré des retards, -E max = max{E i , i = 1,

Représentations des ordonnancements

Les solutions d'un problème d'ordonnancement d'atelier peuvent être représentées par le diagramme de Gantt et le graphe disjonctif.

Exemple 1.1

Soit le problème J 3 |n = 4|C max dont les gammes opératoires sont les suivantes :

J 1 : M 1 (1) M 2 (2) M 3 (3) J 2 : M 2 (1) M 1 (2) M 3 (3) J 3 : M 3 (2) M 2 (1) M 1 (3) J 4 : M 1 (4) M 3 (1) M 2 (1)
Les nombres mis entre parenthèses représentent les durées opératoires.

Diagramme de Gantt

Le diagramme de Gantt (par H. Gantt) permet de montrer les séquences de traitement sur chaque machine et les dates de début et de fin des jobs. En effet, il se compose de lignes horizontales désignant les machines ; les opérations y sont représentées, en fonction des machines correspondantes, à partir de leur dates de début d'exécution, sous forme de barres ayant des longueurs proportionnelles à leur durées opératoires.

A titre d'illustration une solution réalisable du problème de l'exemple 1.1 est donnée par la

Complexité des problèmes d'ordonnancement

Caractérisation du problème

Les données du problème sont :

• Un ensemble de n jobs J = {J 1 , J 2 , ••, J n } doit être réalisé par un ensemble de m machines M = {M 1 , M 2 , ••, M m },
• Chaque job J i est composé d'une gamme opératoire qui est une séquence linéaire de

n i opérations {O i1 , O i2 , ••, O ij , ••, O ini }.
α ij = 0 (resp. α ij = 1) si O ij est sécable (resp. non-sécable) et 0 ≤ α ij ≤ 1 si O ij est

Chapter 2

Optimization techniques

This chapter describes the main methods that are used to solve scheduling problems. For each method, the general idea is reported. More details are only given for methods we use in our study. Most of the given references concern the solution of production scheduling problem under resource availability constraints. Section 2.1 concerns exact methods that try to find optimal solutions to optimization problems. Section 2.2 presents the approximation methods that are used as an alternative to exact methods for finding good solutions.

Exact methods

Exact methods can find optimal solutions for combinatorial optimization problems, thanks to an intelligent exploration of the solutions space, but not systematically in a polynomial time.

The most commonly used methods are described in the following sub-sections:

Branch-and-bound procedure

Branch-and-bound procedure, introduced by Dantzig et al. [START_REF] Dantzig | Solution of a large-scale travelingsalesman problem[END_REF] for the resolution of the traveling salesman problem, is a search method by implicit enumeration of solutions that corresponds to a tree construction avoiding unnecessary branches; and which root corresponds to the solutions space of the original problem. In a minimization problem, an upper bound U B of the objective function is first calculated by a heuristic for example.

The method consists, at each step, in decomposing a node that represents the solutions space associated with a partition of disjunctive subsets of lower sizes. The evaluation of the nodes allows to eliminate the branches that do not contain the optimal solution. So, before exploring a node, a lower bound of the objective function to the associated problem is calculated. If this value is higher than U B, the node and all the branches obtained from it are eliminated. If the node is a leaf, the exploration is stopped; otherwise the node is kept and U B is updated by the associated value of the objective function.

The quality of the method depends on the upper and lower bounds and the computation time. There are many strategies for selecting the nodes. The best known are the depth first where the most recently created node is selected, the breath exploration which consists to explore all the nodes of a level, the progressive method where priority is given to the most promising node (with the best evaluation).

Here are some references using the branch-and-bound procedure for production scheduling problems with limited resource availability: Souissi In our mathematical modeling and column generation approaches, we use the branch-andbound procedure provided by ILOG CPLEX. For the first one, the objective is to find the optimal solutions to the problems integrating all the constraints and the variables. For the second one, the aim is to find the optimal solution associated to the problem defined by the improving columns added to the initial solution defined by the approximation methods that we develop.

Dynamic programming

Dynamic programming is a method for solving optimization problems, whose objective function has the property of decomposability (Gondran and Minoux [START_REF] Gondran | Graphs and Algorithms[END_REF]). These problems exhibit

Exact methods

the properties of overlapping subproblems and optimal substructure and their solution takes much less time than naive methods. It is proposed by Bellman [Bel57] in the context of a search for a shortest path in a graph.

The idea is to transform the resolution of one problem P to the resolution of sub-problems (P 0 , P 1 ,..., P n ) related by a recurrence relationship on the value of the objective function. The information obtained during the subproblems resolution P 0 ,..,P k-1 are used to optimally solve the subproblem P k . Thus, to obtain the optimal solution of the problem P , it is sufficient to go backward (P n ,.., P 0 ) through the set of taken and stored decisions of the resolution of each subproblem, which can cost high in time and memory.

As examples of using dynamic programming for scheduling with limited resource availability, Souissi [START_REF] Souissi | Ordonnancement avec prise en compte des indisponibilités dépendantes et indépendantes[END_REF], Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF], Sadfi In our column generation approach, we integrate a dynamic programming procedure to search for the columns improving the model defined by the initial solution found by our approximation methods.

Linear programming

The linear programming is an important field of optimization for several reasons. Many practical problems in operations research can be expressed as linear programming problems.

The linear programming is a generic approach based on mathematical modeling of combinatorial optimization problems, where the constraints, expressed as inequalities and the objective function as an equation, are linear regarding the decision variables. So linear programming problems determine the way to achieve the best outcome (such as maximum profit or lowest cost) given some list of requirements represented as linear equation.

Geometrically, the linear constraints define a convex polyhedron which is called the feasible region. Since the objective function is also linear, hence a convex function, all local optima are global optima. The linearity of the objective function also implies that the set of optimal solutions is the convex hull of a finite set of points -usually a single point.

The linear program is infeasible if the feasible region is empty (the constraints contradict each other). It is unbounded if the polyhedron is unbounded in the direction of the objective function.

When the decision variables are real, the variables of the linear programs are continuous, and are polynomial (algorithms of Khachiyan [Kha79] and Karmarkar [START_REF] Karmarkar | A new polynomial time algorithm for linear programming[END_REF]). In practice, the most used algorithm is the simplex algorithm (Dantzig [START_REF] Dantzig | Application of the simplex method to a transportation problem[END_REF]) although its theoretical complexity is exponential.

However, the majority of scheduling problems, which are N P -hard, can not be solved to optimality by programs with integer variables or mixed (real and integer). Their relaxation into continuous linear programs allows to obtain lower bounds for minimization problems.

Relaxation techniques

They have a double role in the resolution of combinatorial optimization problems. The principle of these methods is to relax a number of constraints (examples: variables integrity, resource constraints, precedence constraints between operations) in order to make the resolution of the problem easier. They provide good lower bounds to increase the efficiency of branch and bound methods. Fisher et al. [START_REF] Fisher | Surrogate duality relaxation for job-shop scheduling[END_REF] proposed for instance an approach for the job shop based at first on the relaxation of the resource constraints; then on the relaxation of the jobs routings.

For the small problems on which it is tested, it gives good results.

Column generation

In Barnhart et al. [START_REF] Barnhart | Branch-and-Price: Column Generation for Solving Huge Integer Programs[END_REF], it is mentioned that the successful resolution of large-scale mixed integer programming problems (MIP) requires formulations whose linear programming (LP) relaxations give a good approximation of the convex hull of feasible solutions (as column generation is performed with the relaxation of the LP program). It is also mentioned that, in column generation, sets of columns are left out of the LP relaxation because there are too many columns to handle efficiently and most of them will have their associated variables equal to zero in an optimal solution anyway.

Exact methods

The principal of the column generation approach is the following: Starting from an initial set of columns that corresponds to a feasible solution to the problem, columns are iteratively added to the reduced problem (based on the LP program relaxation) thanks to a pricing problem that constructs feasible schedules corresponding to improving columns. The reduced problem is reoptimized at each iteration. The process is stopped when no column is added. If the solution to the reduced problem is integer, it is also the solution to the MIP; otherwise, the integrality property of the variables is introduced to the reduced problem that is then solved by a branch-and-bound procedure or a branch-and-price procedure.

In Lancia et al. [LRS07], a compact formulation of a model is an equivalent formulation in which the exponentially many constraints are replaced by a polynomial number of new constraints (after introducing an exponential number of new variables).

In Barnhart et al. [BJNSV98], considering formulations with a huge number of variables are listed may be due to the following reasons:

• When a compact formulation of a MIP may have a weak LP relaxation, the relaxation can be tightened by a reformulation that involves a huge number of variables,

• A formulation with a huge number of variables can eliminate the symmetry that can exist in the structure of a compact formulation of a MIP. This symmetry causes a poor performance of branch-and-bound,

• Column generation provides a decomposition of the problem into a master problem and a pricing problem. This decomposition may have a natural interpretation in the contextual setting allowing for the incorporation of additional important and complex constraints,

• A formulation with a huge number of variables may be the only choice.

Polyhedral approach -Cutting plan

It is widely used, for instance for the resolution of the traveling salesman problem and provides good results. The principle of the algorithm is to calculate, at the first step, the solution by the resolution of a linear program whose constraints are a subset of constraints defining the polyhedron. The second step consists in analyzing the solution to determine the constraints of the problem that are not satisfied. These constraints are added to the linear program and a new solution is calculated. The difficulty consists in finding unsatisfied constraints (for a solution).

Here are some references using linear programming for production scheduling with limited resource availability: Souissi [START_REF] Souissi | Ordonnancement avec prise en compte des indisponibilités dépendantes et indépendantes[END_REF] for the single machine problem and Blazewicz et al. [BD-FKS00, BDODM03] for the parallel machines problem.

In our modeling approach, integer linear and mixed integer linear programs are proposed to show how to deal with resource unavailability periods and their flexibility. Their results are used in the approximation and column generation approaches. Linear programming is also used in the column generation to elaborate the primal and dual programs.

Approximation methods

The approximation methods (heuristics) represent an interesting alternative to exact methods for solving N P -hard combinatorial optimization problems. Indeed, they can provide good solutions at low cost. They are of performance guarantee if it is possible to quantify the gap between the best provided solution and the optimal solution.

Construction heuristics

The construction heuristics are methods that iteratively build a solution. Most of them are greedy algorithms. The most commonly used methods are the list algorithms which principle is to sort the list of operations according to a decision strategy called dispatching rule such as SPT (Shortest Processing Time), EDD (Earliest Due Date), FIFO (First In First Out). In general, the generated schedules are either active or non-delay.

A dispatching rule is a rule that define priorities between all the jobs that are waiting for processing on a machine. The priority scheme may take into account the jobs and the machines attributes, and the current time. Whenever a machine becomes idle, a dispatching rule inspects the waiting jobs and selects the one with the highest priority. Research in dispatching rules has been active for several decades, and many rules have been developed and studied in literature.

Dispatching rules can be static or dynamic rules. Static rules are not time-dependent. They are a function of the job data, and/or the machine data; whereas dynamic rules are timedependent.

Approximation methods

Dispatching rules can be local or global. A local rule uses only information on the queue where the job is waiting or the machine (or workcenter) where the job is queued. A global rule may use information of other machines, such as the processing time of the job on the next machine on its route or the current queue length at that machine. As there are many basic dispatching rules, we present only few of them:

-SPT: Shortest processing time first rule (developed by Smith (1956)) sequences the jobs in non-decreasing order of their processing times. We list bellow some references using the SPT rule for production scheduling with resource unavailability periods, the considered problem is given in brackets: Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF], Lee and Liman [START_REF] Lee | Single machine flow-time scheduling with scheduled maintenance[END_REF], Graves and Lee [START_REF] Graves | Scheduling maintenance and semiresumable jobs on a single machine[END_REF] (single machine), Kaspi and Montreuil [KM88], Liman [START_REF] Liman | Scheduling with Capacities and Due-Dates[END_REF], Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] , Lee and Liman [START_REF] Lee | Capacitated two-parallel machines scheduling to minimize sum of job completion times[END_REF] (parallel machine), Adiri et al. [START_REF] Adiri | Single machine flow-time scheduling with a single breakdown[END_REF] (flow shop).

-WSPT: The weighted shortest processing time first rule is a generalization of SPT rule. Whenever a machine is available, the job with the highest ratio of weight w i over processing time p i ( wi pi ) is scheduled next. This rule tends to minimize the weighted sum of the completion times, that is ∑ w i C i (Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] for the single machine problem).

-EDD rule: Earliest Due Date rule is due to Jackson [START_REF] Jackson | Scheduling a Production Line to Minimise Maximum Tardiness[END_REF]. Whenever a machine becomes idle, the job with the earliest due date is selected to be processed next. This rule tends to minimize the maximum lateness among the jobs waiting for processing (Lee [Lee96],

Graves and Lee [GL99], Li and Cao [START_REF] Li | Stochastic scheduling on a single machine subject to multiple breakdowns according to different probabilities[END_REF] for the single machine problem).

-LPT rule: Longest processing time rule orders the job in decreasing order of their processing times. When there are machines in parallel, this rule tends to balance the workload over the machines. The jobs with short processing times are kept for later to balance the workload. After the assignment of jobs to machines has been determined, the jobs on any given machine can be resequenced without affecting the workload balance. As examples of applications of LPT rule, Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] studies the single machine problem, Lee [Lee91],

Lin et al. [START_REF] Lin | Parallel machine scheduling to maximize the minimum load with non simultaneous machine available times[END_REF] tackle the parallel machines problems, Allaoui [START_REF] Allaoui | Hybrid Flow-shop Scheduling with Maintenance Constraints: Complexity, Algorithms and Application[END_REF] deals with the hybrid flow shop problem.

-LRP rule: Longest Remaining Path (Liu and Sanlaville [START_REF] Liu | Preemptive scheduling with variable profile, precedence constraints and due dates[END_REF]b,[START_REF] Liu | Stochastic scheduling with variable profile and precedence constraints[END_REF] for the parallel machines problem).

In our approximation approach, we develop heuristics that construct a schedule based on various decision strategies. These strategies are defined relatively to how job operations and/or machines are prioritized, and how conflicts between jobs operations and machine unavailability periods are managed.

Decomposition heuristics

They consist in decomposing the problem into several subproblems. Among these methods are:

• The hierarchical decomposition (Erscher et al. [START_REF] Erscher | Consistency of the disaggregation process in hierarchical planning[END_REF]) which decomposes the problem into several levels, whose decisions become constraints for the lower levels,

• The temporal decomposition (Portmann [Por88]), which is used for dynamic scheduling problems. Subsets of available operations before the date T 1 are scheduled and some operations are included in the partial sequence. The remaining operations and the operations that become available between the dates T 1 and T 2 are grouped and then scheduled, and so forth,

• The spacial decomposition (Portmann [Por88]) which consists in decomposing the workshop in several workshops with a minimum of moves between them; scheduling operations in each workshop; and finally coordinating the whole.

Improving heuristics

The principle of these methods is not to build an initial schedule but to modify, starting from an initial solution, the result of a feasible schedule to improve the value of the objective function. Most of these methods use the notion of solution neighborhood. It therefore consists in exploring neighbor solutions of a given solution and select one of them to continue the exploration process. At each step, the chosen solution does not necessarily improve the value of the objective function but may allow to escape from local minima.

Improving heuristics can improve the sequences resulting from construction or decomposition heuristics. In particular, metaheuristics are widely used for solving combinatorial optimization problems. Their success is due to the fact that they can integrate different practical constraints

Approximation methods

of the problems, they are easy to implement, and they provide good solutions. When sufficient knowledge about the search space is available a priori, one can often exploit that knowledge (inference) in order to introduce problem specific search strategies for finding solutions of higher quality.

The idea of a classical algorithm of iterative improvement is the following: it starts from an initial configuration. It then tries an elementary modification, called movement, and it compares the values of the objective function, before and after this modification. If the change leads to an improvement of this function, it is accepted, and the obtained configuration, which is the neighbor of the current solution, is the starting point for a new iteration. Otherwise, it comes back to the previous configuration before trying again. The process is repeated until every modification makes the result worse. In general, the algorithm does not lead to the global optimal solution; but only to a local optimum; which constitutes the best accessible solution depending on the initial assumptions.

To improve efficiency of the algorithm, it may be applied several times, modifying each time the initial assumption chosen randomly; and in the end, the best solution within the local minima is selected. But this may considerably increase the computation time without any guarantee of reaching the global optimum.

To escape from the local optimum, and explore more promising regions of the solutions space, more promising movements, which degrade the solution, may be allowed from time to time. To avoid the divergence of the process, a control mechanism of these degradations, depending on each heuristic, is added.

Among the techniques that have proved their efficiency in solving combinatorial optimization problems are the genetic algorithms (Holland [Hol75]), simulated annealing (Kirkpatrick et al.

Simulated Annealing

The Simulated Annealing method, developed by Kirkpatrick et al. [START_REF] Kirkpatrick | Optimization by Simulated Annealing[END_REF], is inspired from the annealing process to solve optimization problems: the objective function of the problem, similar to material energy, is then minimized, introducing a fictitious temperature, which is in this case a control parameter of the algorithm.

In practice, the technique uses the algorithm of Metropolis, which allows to describe the behavior of a system in thermodynamic equilibrium under a temperature T emp: starting from a given configuration (feasible solution), an elementary modification is made to the system; if this transformation decreases the objective function (or energy), it is accepted; otherwise if it increases by ∆f the objective function, it can be accepted with a probability equal to exp(-∆f T emp ). The process is repeated, with a constant temperature, until the thermodynamic equilibrium is reached. After at least one modification, the temperature is reduced, before performing new iterations of transformations. This process is empirical.

The drawback of simulated annealing is the tuning of parameters (the reduction function of the temperature, the number of iterations for each temperature t, the initial temperature, where these three parameters represent the cooling scheme, the configuration and the neighborhood codings, the efficiency of the routines for generating a neighbor, and the computation time). The advantage is the flexibility regarding the problem evolutions and the easiness for implementing.

Blazewicz et al. [START_REF] Blazewicz | Heuristic algorithms for the two-machine flowshop Problem with limited machine availability[END_REF] uses a simulated annealing method to solve the flow shop problem with resource availability constraint.

Algorithm 1 describes the general scheme of the simulated annealing heuristic.

Tabu Search

The principal of the Tabu Search, proposed by Glover [START_REF] Glover | Heuristics for Integer Programming Using Surrogate Constraints[END_REF], is to cleverly explore solutions space of the problem by avoiding getting stuck in a local optimum, thanks to two specific strategies. The first strategy is the intensification which forces the search in the most promising areas of the solutions space. The second strategy is the diversification, which guides the search in Its principal particularity is the use of mechanisms inspired from the human memory. In opposition to the tabu search, the simulated annealing does not memorize the previously explored configurations; and then it is not able to learn from the past. However, the memory modeling induces multiple degrees of liberty which make difficult a rigorous mathematical analysis. Indeed, it is the only metaheuristic used to solve optimization problems that works with a memory or a set of memories: the explicit memory that allows to save the solutions found during the search process and which is the basis of the diversification strategy, and the attributive memory which saves attributes such as operations permutations which allows to move from a solution to another.

Tabu search works with only one current configuration (solution) at a time. At first, an initial solution must be provided. While a stopping criterion is not met, this solution is progressively improved. This condition can be a fixed number of iterations or a fixed number of iterations without improvement of the solution.

The improvement process, applied at each iteration, consists in first associating to the current solution a neighborhood corresponding to a region of the solution space by applying an operation called movement. Hence the neighborhood is the set of accessible configurations in only one elementary movement from the current solution. It is important to well choose the definition of the movement from those allowed; because only a part of the eventually huge neighborhood will be considered. It can be reduced by establishing a list of candidates or randomly extract un subset of neighbors of a fixed size.

The objective function is evaluated for each configuration of the neighborhood. The configuration selected is the one corresponding to the best value of the objective function. A configuration less good than the current one can be accepted if it meets a criterion. Thanks to this particularity, the method can avoid getting stuck in local mimima. The attributes of this movement are saved in the tabu list T list for the |T list| succeeding iterations (the movements are saved in the form (new → current); which are the opposite of the last movements

(current → new).
This list avoids going back to solutions already visited in a recent past (cycling). However, the tabu status of a solution can be eliminated if some conditions expressed by the aspiration criterion are satisfied. One of the most used aspiration criteria is the global aspiration criteria which consists in selecting a tabu movement if it allows the improvement of the best value of the objective function found so far.

The tabu list can be explicit or attributive depending on the used restrictions. The choice of the list type depends on the considered problem.

For some optimization problems, the tabu search gives good results. Moreover, in its basic form, the method contains less tuning parameters than the simulated annealing, which make it simple for use. However, some mechanisms such as the intensification and the diversification, bring a notable complexity.

Algorithm 2 describes the general scheme of the tabu search.

Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] develops a tabu search approach to solve the flow shop and the job shop problems with resource availability constraints. Genetic Algorithms, by Holland [START_REF] Holland | Adaptive in Natural and Artificial Systems[END_REF], are evolutionary algorithms which build solutions by combining others. A set of a defined number of points in the search space, chosen randomly or by a heuristic, constitutes the initial population; each individual (chromosome) of the population has a performance, which measures his degree of adaptation to the wanted objective.

Approximation methods

The algorithm consists in evaluating progressively, by successive generations, the composition of the population, by maintaining its size constant and finding strong individuals. Among the generations, the objective is to globally improve the individuals performance. They simulate the natural process of species evolution by adopting two laws that characterize them: the transmission of hereditary characters at reproduction, and the law of survival within the population according to Darwin's theory:

• The selection, which promotes the reproduction and the survival of the most performant individuals,

• The reproduction, which allows the brewing, the recombination and the variations of hereditary characters of the parents, to form offsprings of a new potential.

So the chromosome coding must be defined at first. Some of them are of type: binary vectors (Goldberg [START_REF] Goldberg | Genetic Algorithms in Search: Optimisation and Machine Learning[END_REF]), permutations (Reeves [Ree95]), direct (explicit representation of the solution) and indirect (contains only characteristics to build the solution to which it corresponds).

Once the initial population is obtained, a strength called fitness is assigned to each individual to quantify its importance within the population. Then, the initial population is improved, until a stopping condition is met (generally a fixed number of iterations). The transition from a generation to the next is performed in four phases: a selection phase, a reproduction phase (or variation), a phase of performances evaluation and a replacement phase.

The purpose of the selection phase is to drive the population towards increasingly better solutions by discarding out bad solutions. It designs the individuals which participates to the reproduction. They are chosen, eventually several times, a priori as often as they have a good performance. Some of the selection modes are:

• The tournament selection: it consists in selecting the next generation by conducting a number of tournaments between individuals.

• The proportional (Roulette-wheel) selection (Goldberg [Gol89]): it consists in assigning a selecting slot to each individual according to its fitness.

• The ranking selection: the individuals are sorted (ranked) by fitness and the selection is performed as in the proportional selection.

• The steady-state selection: It consists in creating and inserting, in the population, a small number of offsprings at each iteration; then the worst individuals are discarded.

The reproduction phase consists in applying variation operations on the selected individuals to create new ones; the most used operators are crossover and mutation. The structure of variation operators tightly depends on the representation chosen for individuals.

The crossover operator, which consists in combining the genes of two chromosomes and create new individuals, is applied at first. The most simple one is the 1-point crossover denoted 1X (Goldberg [START_REF] Goldberg | Genetic Algorithms in Search: Optimisation and Machine Learning[END_REF]): the crossover point is randomly chosen; it decomposes the two parents C 1 , C 2 into two sub-chains C 11 , C 12 and C 21 , C 22 . The first offspring is obtained by the concatenation of C 11 and C 22 , the second one by C 21 and C 12 . There are other crossover operators in literature. For example, for permutations crossovers, there are OX for Order Crossover (Oliver et al. [1987]), LOX for Linear Order Crossover (Falkenauer and Bouffouix [1991]), PMX for Partially Mapped Crossover (Goldberg et Lingle [1985]) and ERX for Edge Recombination

Approximation methods

Crossover (Whitley [1989]).

The second operator involved in the generation process of the new individuals is the mutation operator. It is a perturbation operator of randomly chosen chromosomes that modifies some of their characteristics. In the case of a permutation coding, the mutation may be positions exchanging of some genes. This prevents a too fast convergence to a sub-population limited to these genes and a loss in the quality of the solution.

The choice of coding, selection, operators depend on the problem. The performance of the Genetic Algorithm depends on its characteristics: the population size, the crossover and mutation probabilities.

Finally, the replacement phase is performed. It consists in selecting the new population.

The algorithm is interrupted after a fixed number of generations, according to a stopping criterion.

Algorithm 3 describes the genetic algorithm.

Conclusion

In this chapter, we present the techniques that are used to solve scheduling problems. For the two classes of methods: exact and approximation, the most representative techniques are described. We focus on those that are used in our study. For most of the methods described, some references are given for production scheduling problems with resource unavailability periods.

Chapter 3

State of the art of production scheduling problems with resource unavailability periods

This chapter is dedicated to results that are present in the literature for production scheduling problems with resource availability constraints. Section 3.1 is devoted to the production problems taking into account fixed unavailability periods. Results on flexible unavailability periods are presented in Section 3.2. The flexibility is on the starting dates of unavailability periods; they may vary in an intervals defined by earliest and latest starting dates.

Problems with fixed availability constraints

Single machine problems

Non-preemptive case

Souissi [START_REF] Souissi | Ordonnancement avec prise en compte des indisponibilités dépendantes et indépendantes[END_REF] The numerical experiments show the complementarity of the dynamic programming method and the branch-and-bound method.

Resumable case

Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] studies the single machine problem for different performance measures and identifies some polynomial problems. In particular, the author shows that for the 1|rs|C max problem, any sequence is optimal. The author also shows that scheduling operations under SPT rule allows to optimally solve the 1|rs| ∑ i C i problem. Similarly, the 1|rs|L max and 1|rs| ∑ i U i are optimally solvable by respectively the EDD rule and a modification of the Moore-Hodgson rule.

The classical 1||

∑ i w i C i problem (i.e., without machines unavailability) can be optimally solved by sequencing jobs with SWPT rule. But when introducing availability constraints, Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] proves that the problem becomes N P -hard in a weak sense even if w i = p i for all i = 1, ••, n. In addition, a dynamic programming algorithm, and several heuristics are proposed to solve the problem in the case of one unavailability period.

Lorigeon et al. [START_REF] Lorigeon | Availability Constraint for a Single Machine Problem with Heads and Tails[END_REF] study the single machine problem, with one unavailability period, considering heads and tails on operations. The authors propose a lower bound, two upper bounds, a branch-and-bound method. Note that when the machine is continuously available, the problem is strongly N P -hard.

Problems with fixed availability constraints

Wu and Lee [START_REF] Wu | Scheduling linear deteriorating jobs to minimize makespan with an availability constraint on a single machine[END_REF] proposes an algorithm for scheduling linear deteriorating jobs on a single machine (time-dependent scheduling) with one availability constraint and the makespan minimization.

The 1, α 1 |r i , β 1 (M k 1 )|max{C i + q i } problem ((single machine problem with k unavailability period on the machine that are crossable or non-crossable; jobs are resumable or non-resumable and have release dates and latencies)) with α 1 ∈ cr/ncr β 1 ∈ rs, nr, rs/nr is strongly N P -hard.

Indeed the same problem without unavailability periods is strongly N P -hard.

For the 1|rs|max 1≤i≤n {C i + q i } problem, a simple modification of Carlier's branch-andbound algorithm (1982) allows Canon et al. [START_REF] Canon | The one-machine sequencing problem with availability constraints[END_REF] to solve the problem. So problems with up to 500 jobs are solved in less than 1 minute in the worst case and in less than 1 second on the average.

To efficiently solve the problem 1, cr/ncr|rs|max{C i + q i }, Mauguière et al. [START_REF] Ph | New single machine and job-shop scheduling problems with availability constraints[END_REF] integrates in the resolution method of the 1|nr|max{C i + q i } problem a branch-and-bound method that solves the 1|rs|max{C i + q i } problem.

For minimizing the arrival time of the last delivery batch to the distribution center (∼ C max ) in batch production on a single machine, Wang and Cheng [START_REF] Wang | Machine scheduling with an availability constraint and job delivery Coordination[END_REF] provide a polynomial algorithm.

Kacem and Chu [KC08b] study the 1|rs|

∑ w i C i with one unavailability period on the machine. New properties of the worst-case performance of the WSPT heuristic and a tighter approximation of the worst-case error are given. The worst-case bound is equal to 2 under some conditions. The results complete those of Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF].

Non-resumable case

Adiri et al. [START_REF] Adiri | Single machine flow-time scheduling with a single breakdown[END_REF] study the 1|nrs| ∑ i C i problem. The deterministic and stochastic contexts on unavailability are both considered. In particular, in the deterministic case, it is proved that the problem is N P -hard in the weak sense, even if there is only one unavailability period on the machine. Lee and Liman [START_REF] Lee | Single machine flow-time scheduling with scheduled maintenance[END_REF] develop a simpler proof for N P -hardness of the deterministic problem considered by Adiri et al. [START_REF] Adiri | Single machine flow-time scheduling with a single breakdown[END_REF]. The authors also show that the rule has a performance guarantee equal to 9 7 .

Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] shows that the 1|nrs|C max problem is N P -hard in a weak sense, as soon as one unavailability period is considered. The author also proves that an algorithm sequencing operations according to LPT rule has a relative error equal to 1 3 .

In the same paper, it is shown that the 1|nrs|L max , 1|nrs| ∑ i U i and 1|nrs| ∑ i w i C i problems are N P -hard in a weak sense. In addition, the EDD algorithm solves the first problem with a relative error equal to p max (longest processing time) and the second problem can be solved by Moore-Hodgson rule with a relative error equal to 1. For the third problem, Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] shows that the performance ratio of the SWPT algorithm may be arbitrarily high, even

if w i = p i for any i = 1, ••, n.
Sadfi [START_REF] Sadfi | Problèmes d'ordonnancement avec minimisation des encours[END_REF] studies the same problem as Lee and Liman [START_REF] Lee | Single machine flow-time scheduling with scheduled maintenance[END_REF]. For the resolution, the author develops the MSPT heuristic (Modified SPT) with a performance guarantee of 19 17 improving the best bound 9 7 found so far in the literature. The MSPT rule consists in improving result given by SPT by swapping a job ordered before the unavailability period with another job sequenced after the unavailability period. The author also develops a dynamic programming algorithm of pseudo-polynomial complexity leading to the optimal solution of the problem.

Leon and Wu [START_REF] Leon | On scheduling with ready-times, due-dates and vacations[END_REF] propose a branch-and-bound method for the single machine problem with machine unavailability. The algorithm is an adaptation of the branch-and-bound of McMaron and Florian [START_REF] Mac Maron | On Scheduling with Ready Time and Due Dates to Minimize Maximum Lateness[END_REF] and solves problems of 50 operations. Balas et al. [START_REF] Balas | Job shop scheduling with deadlines[END_REF] consider the single machine problem with precedence constraints and due dates (deadlines), which generalizes the problem studied by Leon and Wu [START_REF] Leon | On scheduling with ready-times, due-dates and vacations[END_REF], and easily solve their benchmarks in terms of computation time.

Wang and Cheng [START_REF] Wang | Machine scheduling with an availability constraint and job delivery Coordination[END_REF] propose a heuristic for batch production on a single machine. This heuristic has a worst-case error bound of 1 2 . The authors show that this bound is tight. Production and job delivery are considered at the same time. The objective is the minimization of the arrival time of the last delivery batch to the distribution center (what is equivalent to

Problems with fixed availability constraints

C max ). Moreover, one vehicle with at most K-job capacity is available to deliver the jobs in a fixed transportation time to a distribution center.

For the 1|nrs|

∑ C i , Chen [START_REF] Chen | Minimizing total flow time in the single-machine scheduling problem with periodic maintenance[END_REF] assumes that the machine availability is limited due to periodic maintenance activities. Several maintenance periods define a periodic maintenance schedule; and each maintenance period is scheduled after a periodic time interval. A branchand-bound algorithm is proposed to optimally solve the problem; and a heuristic is designed to solve large sized problems.

Gawiejnowicz [START_REF] Gawiejnowicz | Scheduling deteriorating jobs subject to job or machine availability Constraints[END_REF] tackles the single machine problem with n deteriorating jobs and k unavailability periods (1 ≤ k < n). The author develops an algorithm for C max minimization.

The starting date t i = α i t, where α i > 0 is the deterioration rate and t > 0 is the time (t is applied instead of the starting process time of J i ). The author proves that the problem is N P -hard in the ordinary sense if there is only one unavailability period; otherwise it is strongly N P -hard.

Chen [START_REF] Chen | Scheduling of jobs and maintenance in a textile company[END_REF] considers a periodic maintenance scheduling problem on a single machine in a textile company. The processing times and due dates are integer values. The author develops a near optimal heuristic and an optimal branch-and-bound algorithm to minimize T max . The results show that the heuristic is accurate and efficient.

Resumable / Non-resumable case

To solve the 1, cr|rs/nrs|max{C i + q i } problem, Mauguière et al. [START_REF] Mauguière | Scheduling resumable and nonresumable Operations[END_REF] propose a branchand-bound algorithm. Most of instances with up to 100 operations are solved, though some smaller instances seem to be intractable for the method.

To solve the 1, cr/ncr|r i , rs/nrs(M k 1 ),

d i |max{C i +q i } problem, Mauguière et al. [MBB03b]
develop a branch-and-bound procedure. Another solution method is proposed by Mauguière et al. [START_REF] Ph | New single machine and job-shop scheduling problems with availability constraints[END_REF]. The strongly N P -hard problem 1|pmtn, r i , d i , q i |max(C i + l i ) is solved by the authors with an approximation algorithm which is a modification of Schrages algorithm (1971); the latency duration l i = max{q i , Kd i }, where K is a constant number. As the problems with rs, cr/ncr|rs, nrs, cr|rs/nrs and pmtn are particluar cases of the problem with cr/ncr|rs/nrs, the 1, cr/ncr|r i , rs/nrs, d i |max{C i + q i } problem is NP-hard too, but Mauguière et al. [START_REF] Ph | New single machine and job-shop scheduling problems with availability constraints[END_REF] propose an algorithm that solves it in reasonable time and accuracy.

Parallel machines problems

Non-preemptive case

Gharbi and Haouari [START_REF] Gharbi | Optimal parallel machines scheduling with availability constraints[END_REF] investigate the multiprocessor scheduling problem with non simultaneous machine availability times, release dates, and delivery times (P,

N C inc |r i , q i |C max ),
where N C inc indicates that the number of available machines is nondecreasing with time). The authors propose new lower and upper bounds, and a branching strategy based on a schedule coding as a permutation of jobs. Introducing a semi-preemptive lower bound, based on maxflow computations, in a branch-and-bound algorithm, yields very promising performance. A semi-preemptive schedule, which concept is introduced by Haouari and Gharbi [START_REF] Haouari | An improved max-flow based lower bound for minimizing maximum lateness on identical parallel machines[END_REF], is defined as a schedule such as the fixed parts of the jobs are constrained to start and to finish at fixed times with no preemption, whereas the free parts can be preempted. This method can solve instances of 700 jobs and 20 machines within a reasonable CPU time. It can also be used to solve large instances of two important particular cases P, N C inc ||C max and P |r i , q i |C max .

Mellouli et al. [MSCK09] address the P ||

∑ C i with a planned maintenance period on each machine. Three exact methods (mixed integer linear programming methods, a dynamic programming based method and a branch-and-bound method) and several constructive heuristics are proposed. Moreover, the authors give dominance properties, a lower bound, and two branching schemes for the branch-and-bound method.

Resumable case

Schmidt [START_REF] Schmidt | Scheduling on semi-identical processors[END_REF] studies the P m |prmp, rs|C max problem. The author proposes an algorithm of O(n + m log n) complexity to build feasible preemptive schedules in the case where all machines are available during an arbitrary number of periods. In Schmidt [START_REF] Schmidt | Scheduling independent tasks with deadlines on semi-identical processors[END_REF], release and due dates are taken into account and it is proved that the problem is tractable in O(n log nm) steps.

When no release dates are imposed, minimizing the largest delay can be obtained in a time proportional to O(nm log n).

The 1|rs|

∑ i w i C i problem is N P -hard implies that the P 2 |rs| ∑ i w i C i is also N P -hard.

Problems with fixed availability constraints

Kaspi and Montreuil [START_REF] Kaspi | On the scheduling of identical parallel processes with arbitrary initial processor available time[END_REF] and Liman [START_REF] Liman | Scheduling with Capacities and Due-Dates[END_REF] prove that scheduling jobs with the SPT rule is an optimal order for the P m |rs| ∑ i w i C i problem in the context of parallel machines that are not available at time zero.

Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] states that the P m |rs|C ( max) problem which is an extension of P m ||C max problem is also N P -hard. The author also develops a dynamic programming algorithm to optimally solve the problem considered by Kaspi and Montreuil [START_REF] Kaspi | On the scheduling of identical parallel processes with arbitrary initial processor available time[END_REF].

Lee [START_REF] Lee | Parallel machine scheduling with nonsimultaneous machine available time[END_REF] considers the identical parallel machines problem assuming that these machines are not available at time zero, with the makespan minimization. The author proposes a heuristic with a relative error of 1 2 based on the LPT rule, then an improvement of this algorithm with error equal to 1 3 .

Lin et al. [START_REF] Lin | Parallel machine scheduling to maximize the minimum load with non simultaneous machine available times[END_REF] are interested in maximizing the smallest jobs completion date in an environment of m parallel machines unavailable at time zero. The authors show that the LPT order has a worst-case error equal to 2m-1 3m-2 . The considered criterion helps to balance the workload on the machines.

Lawler and Martel

[LM89] solve the problem Q 2 |pmtn, rs| ∑ w i U i . Pseudo-polynomial algo- rithms of complexity of O( ∑ i w i n 2 ) or O(n 2 .t max )
) are proposed using dynamic programming.

Sanlaville [START_REF] Sanlaville | Nearly on line scheduling of preemptive independent tasks[END_REF] investigates the problem of scheduling preemptive independent jobs, on identical processors, so as to minimize the maximum lateness L max . The author suggests a nearly on-line priority algorithm with an absolute error less than or equal to (m -1 m )t max (where t max is the maximum of the starting dates of the jobs) if the machines availability follows a constant pattern, and it is less than or equal to t max if the machine availability represents an increasing zigzag pattern. The priority is calculated according to the Smallest Laxity First (SLF) rule, ( the laxity or slack time is the difference between the due date of the job and its remaining processing time). The complexity of the method is O(n 2 .t max ) and, in the case of a zigzag pattern and no release dates, the obtained solution is optimal. For the problem with release dates and due dates, a method of O(n 3 .t 3 max (log n + log t max )) complexity is implemented, if the number of changes of machine availabilities during any time interval is linear in length of the interval. This algorithm is off-line. Liu and Sanlaville [START_REF] Liu | Preemptive scheduling with variable profile, precedence constraints and due dates[END_REF] show that using SLF rule on modified due dates, for the makespan minimization for inforest precedence graphs and increasing zigzag patterns, the results can be extended to minimization of L max . Note that the modified due date is given by

d ′ i = min{d i , d s(i) + t s(i) },
where index s(i) is related to the successor job of J i when it exists. SLF rule is also used for L max minimization on the two machines problem with availability constraints, but with a different modification scheme. [START_REF] Sheen | Scheduling machine-dependent jobs to minimize lateness on machines with identical speed under availability constraints[END_REF] tackle the problem of scheduling n preemptive jobs on m machines with identical speed under machine availability and "eligibility" constraints for minimizing L max . The problem is formulated into series of maximum flow problems by network flow technique. A polynomial time two-phase binary search algorithm is proposed to check the feasibility of the problem and if it is feasible to optimally solve it. Finally, it is proved that the time complexity of the algorithm is O((n + (2n + 2K)) 3 log(U B -LB)), where K is the total number of availability periods on all machines, and UB and LB are respectively upper and lower bounds provided by the algorithm for optimal L max .

Sheen and Liao

Blazewicz et al. ([BDFKS00], [BDODM03]

) show that the parallel processors problem, with preemptive tasks, multiprocessor tasks and limited processors availability, becomes N P -hard in the strong sense in case of trees and identical processors. When the tasks form chains and are processed by identical processors with a staircase pattern (N C sc ) of availability, the problem can be solved in a low-order polynomial time for C max and a linear programming approach is required for L max . For the problem with independent tasks scheduled on uniform and unrelated

Problems with fixed availability constraints

processors with arbitrary patterns of availability, the network flow and linear programming approaches are respectively proposed for the schedule length and maximum lateness criteria.

For the batch production problem on two parallel machines, in case only one processor has an unavailability period, Wang and Cheng [START_REF] Wang | Machine scheduling with an availability constraint and job delivery Coordination[END_REF] propose a heuristic to minimize the arrival time of the last delivery batch to the distribution center. This heuristic has a worst-case error bound of 2 3 .

Non-resumable case

Ullman [START_REF] Ullman | NP-complete scheduling problems[END_REF] is the first to address the minimization makespan on m parallel machines with availability constraints. In the case of non-scored, the author demonstrates that the problem is N P -hard in the weak sense.

Lee and Liman [START_REF] Lee | Capacitated two-parallel machines scheduling to minimize sum of job completion times[END_REF] study the P 2 |nrs| ∑ i w i C i problem assuming that one of these machines are no longer available from a date. The authors show that the problem of minimizing the sum of job completion dates is N P -hard in the weak sense and propose a dynamic programming algorithm, and an SPT based heuristic for its resolution. The performance guarantee of the heuristic is equal to 3 2 .

Mosheiov [START_REF] Mosheiov | Minimizing the sum of job completion times on capacitated parallel machines[END_REF] considers the same problem with the assumption that each machine is available only for a period. The author shows that for the P m |nrs| ∑ i w i C i problem, scheduling jobs under SPT rule is asymptotically optimal, when the number of jobs tends to infinity.

A problem similar to that of Mosheiov [Mos94] is the scheduling problem with time windows. In this problem constraints on the jobs availability are considered rather than machines.

For more details, refer to Lei and Wong [START_REF] Lei | The Minimum Common-Cycle Algorithm for Cycling Scheduling of Two Material Handling Hoists with Time Window Constraints[END_REF], and Kraemer and Lee [START_REF] Kraemer | Common Due-Window Scheduling[END_REF].

Lee [START_REF] Lee | Machine scheduling with an availability constraint[END_REF] shows that the P m |nrs|C max problem is N P -hard. The performance of two heuristics are also analyzed: SPT rule and scheduling list SL, which consists in assigning an operation (given any jobs processing order) to the machine that leads to the smallest completion date. The SPT and SL algorithms have respectively relative errors of m+1 2 and m. In the same paper, the author shows that the

P 2 |nrs| ∑ i w i C i problem is N P -hard. A dynamic
programming algorithm is developed to solve efficiently the problem in case w i = 1 for all i and the first machine is continuously available.

Flow shop

Non-preemptive case

Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] proposes two approaches for solving the problem. The first one is based on a list algorithm, the second one uses the geometric approach (two-job) (see also Aggoune and

Portmann [START_REF] Aggoune | Flow shop scheduling problem with limited machine availability: A heuristic approach[END_REF], the F, N C win |n = 2|C max is polynomial and its complexity is at most equal to O(k.m 4 )). These approaches are coupled with metaheuristics to improve their performances.

The test results show that the two-job algorithm provides better results that the greedy one.

Cheng and Liu [START_REF] Cheng | 3/2-approximation for two-machine no-wait flowshop scheduling with availability constraints[END_REF] tackle the two-machine no-wait flow shop problem in which each machine can have an unavailability period. Algorithms are proposed for the cases where an unavailability period is imposed on only a machine and when unavailability periods on the two machines overlap. These algorithms improve the existing results and have a performance bound in the worst-case of 3 2 . In an another paper [START_REF] Cheng | Approximability of two-machine no-wait flowshop scheduling with availability constraints[END_REF], the authors develop an approximation scheme in polynomial time for these problems; that seem interesting only in theory since their complexity depends on a coefficient whose value depends on the wanted accuracy. The approximation algorithms presented in the paper [START_REF] Cheng | 3/2-approximation for two-machine no-wait flowshop scheduling with availability constraints[END_REF] are more efficient.

Resumable case

Lee [START_REF] Lee | Minimizing the makespan in two-machine flowshop scheduling problem with an availability constraint[END_REF] studies the F 2 |rs(M r )|C max problem. The author shows that the problem is N Phard in the weak sense whatever the machine concerned by the unavailability; and proposes pseudo-polynomial algorithms based on dynamic programming. The author also develops a heuristic with a performance guarantee of 3 2 (resp. 4 3 ); where the unavailability period occurs on the first machine (resp. the second), the relative error obtained by applying the Johnson's algorithm is equal to 1 (resp. 3

2 ). In the same paper, it is demonstrated that for one or both machines unavailable at instant zero, the problem is optimally solved by Johnson's algorithm.

Lee [START_REF] Lee | Two-machine flowshop scheduling with availability constraints[END_REF] considers the F 2 |rs, nr, sr|C max problem. In the resumable case, it is shown that in case of an unavailability period on each machine, Johnson's algorithm is optimal when the unavailability periods are planned at the same date. In addition, when the machines are

Problems with fixed availability constraints

unavailable at different dates, and even if the length of unavailability periods are equal, the problem becomes N P -hard in the weak sense.

Cheng and Wang [START_REF] Cheng | Two-machine flowshop scheduling with consecutive availability constraints[END_REF] consider the two-machines flow shop problem with an unavailability period on each machine. The authors assume that the unavailability periods are consecutive and the operations are semi-resumable. A heuristic, of worst-case bound equal to 2 3 is developed for makespan minimization in the non-resumable case.

Cheng and Wang [START_REF] Cheng | An improved heuristic for the two-machine flowshop scheduling with an availability constraint[END_REF] address the two-machine flow shop problem for the makespan minimization when the operations are resumable and there is an unavailability period on the first machine. The authors show that the worst-case bound equal to 1 2 and found by Lee [Lee97] is tight; then they develop a heuristic with a performance guarantee equal to 4 3 .

Blazewicz et al. [START_REF] Blazewicz | Parallel Branch and Bound Algorithms for the Two-machine Flow Shop Problem with Limited Machine Availability[END_REF] propose a parallel implementation of a branch-and-bound method for the makespan minimization in a two-machine flow shop problem where several unavailability periods by machine are considered and the operations are resumable.

Wang and Cheng [START_REF] Wang | Heuristics for two-machine no-wait flowshop scheduling with an availability constraint[END_REF] develop two heuristics, with a worst-case bound equal to 5 3 . The authors improve the results of Espinouse et al [START_REF] Espinouse | Minimizing the makespan in the two-machine no-wait flow-shop[END_REF] for the no-wait two-machines flow shop problem with availability constraints.

In Blazewicz et al. [START_REF] Blazewicz | Heuristic algorithms for the two-machine flowshop Problem with limited machine availability[END_REF], two constructive heuristics and a simulated annealing method are developed to solve the problem addressed in Blazewicz et al. [START_REF] Blazewicz | Parallel Branch and Bound Algorithms for the Two-machine Flow Shop Problem with Limited Machine Availability[END_REF]. The first heuristic schedules the jobs between two consecutive unavailability periods following Johnson's rule, while the second one is based on a local optimization.

Braun et al. [START_REF] Braun | Stability of Jonson's Schedule with limited Machine availability[END_REF] study the stability of the schedules for a two-machine flow shop problem in the presence of an unavailability period on each machine. In particular, the authors show that for the makespan minimization with resumable operations, the Johnson's order is still dominant if the unavailability periods are sufficiently small. Kubiak et al. [START_REF] Kubiak | Two-machine flow shops with limited machine availability[END_REF] also consider several unavailability periods in the two-machine flow-shop with resumable operations. The authors show that the makespan minimization is strongly N P -hard, even if all unavailability periods concern only one machine. In case where unavailability periods are on the first machine, a heuristic with a performance guarantee equal to 2 and of complexity O(n × logn) is proposed; and it is shown that there is no heuristics with a performance guarantee for more than two unavailability periods, if at least one of them is on the second machine. In addition, after proving that scheduling jobs according to the Johnson's rule between two consecutive unavailability periods is optimal, the authors develop a branch-and-bound method to solve the problem of sequencing jobs on the machines in the different intervals of availability.

Breit [START_REF] Breit | An improved approximation algorithm for two-machine flow shop scheduling with an availability constraint[END_REF] studies the F 2 |rs|C max with an unavailability period on the second machine.

A relative error in the worst-case of 5 4 is proposed; thereby improving the result given by Lee.

Breit [START_REF] Breit | A polynomial-time approximation scheme for the two-machine flow shop scheduling problem with an availability constraint[END_REF] tackles the F 2 |rs|C max with n preemptive jobs and an unavailability period on the first machine. The author develops a polynomial-time approximation scheme to solve this problem; then it is extended to solve the problem where the unavailability period is on the second machine.

Wang and Cheng [START_REF] Wang | Heuristics for two-machine flowshop scheduling with setup times and an availability constraint[END_REF] propose two heuristics of worst-case error bounds not longer than 2 3 for the F 2 |rs(M r ), S ri |C max problem.

Wang and Cheng [START_REF] Wang | An approximation scheme for two-machine flowshop scheduling with setup times and an availability constraint[END_REF] tackle the following permutation flow shop problem: P F 2|rs(M 1 ), S ri |C max and present a polynomial-time approximation scheme for it.

Kubzin et al. [START_REF] Kubzin | Approximation results for flow shop scheduling problems with machine availability constraints[END_REF] study the F 2 |rs, srs|C max problem with machine availability constraints. The authors propose a fast 32-approximation algorithm for the problem with several non-availability periods on the first machine and resumable operations. When there is one unavailability period and the operations are semi-resumable, a polynomial-time approximation scheme is presented.

Non-resumable case

Based on the work of Adiri et al. [START_REF] Adiri | Single machine flow-time scheduling with a single breakdown[END_REF], the problem F |nrs| ∑ C i (and so,

F |nrs(M k r )| ∑ w i C i ) is N P -complete, because the 1|nrs| ∑ C i problem with only one unavail-
ability period is N P -hard. The SPT rule leads to a tight relative error not greater than 2 7 for

Problems with fixed availability constraints

this problem. For fixed m, the SPT rule is asymptotic optimal if there is no more than one interval of non-availability for each machine (refer to Sanlaville and Schmidt [START_REF] Sanlaville | Machine scheduling with availability constraints[END_REF]).

Cheng and Wang [START_REF] Cheng | Two-machine flowshop scheduling with consecutive availability constraints[END_REF] study the F 2 |nrs(M 2 r )|C max problem with two consecutive availability constraints. The authors develop a heuristic and show that it has a worst-case error bound of 2 3 .

For the F 2 |nrsM r |C max problem, Lee [START_REF] Lee | Two-machine flowshop scheduling with availability constraints[END_REF] proposes a heuristic with a relative error equal to 1 when the unavailability period is imposed on the first machine. When the unavailability period is imposed on the second machine, the Johnson's algorithm has a relative error of 1.

Espinouse et al. Kubzin and Strusevich [START_REF] Kubzin | Planning Machine Maintenance in Two-Machine Shop Scheduling[END_REF] consider the F 2 ||C max in which each machine has a maintenance activity, and whose duration depends on its starting time. The authors prove that the problem is binary N P -hard and is pseudo polynomially solvable by dynamic programming.

Semi-resumable case

Lee [START_REF] Lee | Two-machine flowshop scheduling with availability constraints[END_REF] generalizes the complexity results given in [START_REF] Lee | Minimizing the makespan in two-machine flowshop scheduling problem with an availability constraint[END_REF] to the case where the operations are semi-resumable. More specifically, the author shows that the makespan minimization is N P -hard in the weak sense whether the unavailability period is on a machine or the other

(F 2 |srsM r |C max ).
When the unavailability period is imposed on the first machine, a dynamic programming algorithm is developed, and the proof that the Johnson's algorithm has a relative error equal to 1 is given. When the unavailability period occurs on the second machine, Johnson's algorithm has a relative error equal to max{ 1 2 , α}, where α is the portion of the semi-resumable operation, interrupted by the unavailability period, to be reprocessed.

In the same paper, the author shows that when both machines have an unavailability period (which do not start at time instant zero), the problem is N P -hard in the weak sense, even if the starting and completion dates of unavailability periods are the same on both machines. In this case, the Johnson's algorithm has a relative error equal to α. Finally, if unavailability periods of both machines begin at instant zero, the Johnson's algorithm allows optimally solving the makespan minimization.

Resumable / non-resumable cases

Espinouse et al. [START_REF] Espinouse | Minimizing the makespan in the two-machine no-wait flow-shop[END_REF] are interested in the makespan minimization in the no-wait twomachine flow shop problem, with availability constraints. The authors show that the problem is N P -hard in the weak sense when only one unavailability period is considered. They develop a heuristic of performance guarantee equal to 2 in resumable and non-resumable cases.

They demonstrate that when several unavailability periods are taken into account, the problem became strongly N P -hard; and there is no heuristic of a performance guarantee (whether operations are resumable or not).

Problems with fixed availability constraints

Allaoui et al. [START_REF] Allaoui | Scheduling of two-machine flow-shops with availability constraints[END_REF] tackle the makespan minimization for the two-machine flow shop problem whose first machine has unavailability period. The authors consider two scenarios: resumable and non-resumable operations. For both scenarios, they propose a dynamic programming algorithm. Moreover, they focus on studying the performance of the Johnson's algorithm. They establish the optimality condition and show that in the other cases its performance is bounded by 2.

Allaoui et al. [START_REF] Allaoui | Scheduling of a two-machine flow shop with availability constaints on the first machine[END_REF] study the two-machine flow shop problem for the makespan minimization with an unavailability period on the first machine and in the resumable and nonresumable cases. The authors propose an improvement of a dynamic programming model comparing to the one proposed by Lee [START_REF] Lee | Minimizing the makespan in two-machine flowshop scheduling problem with an availability constraint[END_REF]. It reduces the computation of the optimal solution and proves that the bound is tighter.

Hybrid flow shop

Non-resumable case

Allaoui [START_REF] Allaoui | Hybrid Flow-shop Scheduling with Maintenance Constraints: Complexity, Algorithms and Application[END_REF] studies the two-stages hybrid flow shop problem with one machine at the first stage, and m machines at the second one. The author proposes a branch-and-bound method to solve small problems and three heuristics based respectively on a list algorithm, LPT rule and Johnson's rule. A study of the worst-case is made for the three heuristics. A simulation model is developed for the general hybrid flow shop problem.

Allaoui and Artiba [START_REF] Allaoui | Scheduling two-stage hybrid flow shop with availability constaints[END_REF] study the same problem. The authors assume that jobs have to wait between stages and preemption is not allowed (although the terminology of non-resumable case is used). They assume that each machine has at most one unavailability period. The optimization criterion is makespan. The problem is strongly N P -hard. They propose a branchand-bound algorithm for small size problems. For problems of large sizes, they calculate the error bounds of a list algorithm, LPT algorithm and heuristic H proposed by Lee and Vairaktarakis (1994) for the hybrid flow shop without availability constraints. They prove that the performance of heuristic H, in the worst-case, is better than LPT one if and only if the number of machines in the second floor is greater than or equal to 4.

Jungwattanakit et al. [START_REF] Jungwattanakit | Algorithms for Flexible Flow Shop Problems with Unrelated Parallel Machines, Setup Times, and Dual Criteria[END_REF] investigate the hybrid flow shop problem with n jobs, unrelated parallel machines at each stage, due dates, release dates and sequence and machine dependent setup times. The authors formulate the problem in a 0-1 mixed integer program for combinations of C max and ∑ U i . The preemption on job operations is not allowed and only one unavailability period is possible for each machine at time zero. Heuristics based on existing dispatching rules and well-known constructive heuristics for the flow shop problem with makespan minimization are proposed. Improvement methods that are polynomial and based on job shifting are used for the solutions; genetic algorithms are also proposed.

Job shop

Non-preemptive case

Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] studies the two-job shop problem for makespan minimization in the case of strictly non-preemptive operations. The author develops an extension of the geometric approach of Akers and Friedman [START_REF] Akers | A Non-numerical Approach to Production Scheduling Problems[END_REF] that can transform the initial problem in a search for a shortest path. The method is polynomial. It is based on a new characterization of vertices, on the introduction of additional vertices, and on taking into account the time during the scheduling.

The algorithm is then extended to take into account any regular criterion, additional precedence constraints and release dates on operations.

Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] adapts the approximation methods he develops for the flow shop to the job shop. The best results are obtained by the two-job based approach.

Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF][START_REF] Aggoune | Une procédure par séparation et évaluation pour l'ordonnancement d'un job shop sous contraintes de disponibilité[END_REF] proposes a branch-and-bound method to the job-shop problem for makespan minimization. The approach can be generalized to any regular criterion. The disjunctive graph model is used for representing the nodes of trees. The author introduces an original way to take into account machines availability periods, introducing fictive jobs composed by unavailability periods and introduces flexibility on this latter. Finally, the calculation of lower bounds is based on the resolution of subproblems with two jobs, taking into account the precedence and availability constraints as well as latency dates on operations.

Resumable case

For the J|rs(M k r )|C max problem, Mauguière et al. [START_REF] Mauguière | Scheduling resumable and nonresumable Operations[END_REF] propose a branch-and-bound method. The computational results show that the problem with unavailability periods is a

Problems with fixed availability constraints

more difficult than the one without unavailability periods.

Resumable/Non-resumable case

A branch-and-bound method is proposed by Mauguière et al. [START_REF] Mauguière | A branch and bound algorithm for a job shop scheduling problem with availability constraints[END_REF] to solve the J, cr|rs/nrs(M k r )|C max problem. In Mauguière et al. [START_REF] Ph | New single machine and job-shop scheduling problems with availability constraints[END_REF], the authors extend the algorithms they developed for the job shop to solve the J, cr/ncr|r i , rs/nrs(M k r )|C max problem.

Flexible job shop

Levitin [START_REF] Levitin | Multistate Series-Parallel System Expansion-Scheduling Subject to Availability Constraints[END_REF] investigates the multistage expansion problem for multistate series-parallel systems, where the objective is to minimize the sum of costs of the investments over the study period while satisfying reliability constraints at each stage. The stages form the study period;

and at each stage the demand distribution is predicted in the form of a cumulative demand curve. The additional elements, chosen from a list of available products, and characterized by its capacity (productivity), availability, and cost, can be included into any system-component at any stage to increase the total system capacity and/or reliability. The author proposes a genetic algorithm where the solution encoding is integer strings representing multistage expansion planes. Reliability and cost estimations are the elements concerned by a solution quality.

Zribi [START_REF] Zribi | Ordonnancement des job-shops flexibles sous contraintes de disponibilité des machines[END_REF] develops a two-phase approach to solve separately the assignment and the se- Taghavi-Fard and Dehnar Saidy [START_REF] Taghavi-Fard | Flexible Job Shop Scheduling Under Availability Constraints[END_REF] develop an exact graphical algorithm based on the extension of Akers method for solving the problem related to the model F J, h kj , cr/ncr|n = 2, rs/nrs/srs, r i , m j ≤ 2|γ, where γ is a performance measure based on the completion time.

The particularity of this algorithm is that it takes into account all the availability models for the flexible job shop environments, arbitrary number of resources (workcenters and processors), arbitrary holes on all work centers, and ready times.

Open shop

Non-preemptive case

Resumable case

Vairaktarakis and Sahni [START_REF] Vairaktarakis | Dual criteria preemptive open-shop problems with minimum makespan[END_REF] show that for any number of machines and of unavailability periods, the problem of makespan minimization in the case of preemptive operations is a polynomial problem.

Breit [START_REF] Breit | Heuristische Ablaufplanungsverfahren fr Flowshops und Openshops mit beschrnkt verfgbaren Prozessoren[END_REF] studies the two-machine open shop problem with machine availability constraints. The author proves that there is no heuristics of performance guarantee for makespan minimization in case of resumable operations, if a machine has one unavailability period and the other two periods.

Breit et al. [START_REF] Breit | Two-machine open shop scheduling with an availability constraint[END_REF] address the makespan minimization for the two-machine open shop problem, where one of the machines has one unavailability period. The authors prove that the resumable problem is N P -hard in the weak sense and develop a heuristic with a ratio in the worst-case equal to 4 3 . In the case where a machine has several unavailability periods, a heuristic with an error of 2 is also developed.

Problems with flexible availability constraints

Lorigeon et al. [START_REF] Lorigeon | A dynamic programming algorithm for scheduling jobs in a two-machine open shop with an availability constraint[END_REF] study the O 2 |rs|C max problem with a machine not always available. The problem is N P -hard. The authors propose a pseudo-polynomial time dynamic programming algorithm to optimally solve the problem when the machine is not available at time zero. A mixed integer linear program is suggested to optimally solve instances with up to 500 jobs in less than 5 min with CPLEX solver. It is proved that a worst-case error bound of any heuristic algorithm is equal to 1.

For the O 2 |rs|C max problem, Kubzin et al. [START_REF] Kubzin | Polynomial-time approximation schemes for two-machine open shop scheduling with nonavailability constraints[END_REF] present two polynomial-time approximation schemes: one for the problem with one unavailability period on each machine and the other for the problem with several unavailability periods on one of the machines. For problems with a more general structure of the unavailability intervals, if P ̸ = N P , there is no approximation scheme that is polynomial-time within a constant factor.

Non-resumable case

Breit et al. [START_REF] Breit | Non-Preemptive Two-Machine Open Shop Scheduling with Non-availability Constraints[END_REF] study the makespan minimization for the two-machine open shop problem in the non-resumable case. The authors assume first that one of the machines has several unavailability periods and show that there is no heuristic with performance guarantee. Then, a heuristic with worst-case ratio equal to 2 (resp. 4

3 ) is developed for the case of one unavailability period on each machine (resp. on only one machine).

Problems with flexible availability constraints

Single machine

If the starting date of the unavailability is a decision variable, Qi et al. [START_REF] Qi | Scheduling the maintenance on a single machine[END_REF] prove that the problem is N P -hard in the strong sense in case of several maintenance periods. The authors solve the non-resumable problem with a branch-and-bound method.

In case of semi-resumable operations, Graves and Lee [START_REF] Graves | Scheduling maintenance and semiresumable jobs on a single machine[END_REF] consider unavailability periods due to preventive maintenance; and are interested in the study of two optimization criteria: the weighted sum of jobs completion dates and the maximum of delays. The starting dates of maintenance activities are decision variables. Thus, two scenarios on the production horizon are assumed. In case of a too long horizon as compared to the maintenance period, the problem is N P -hard. The authors develop a pseudo-polynomial algorithm based on dynamic programming. However, in case of a quite short horizon, it is sometimes impossible to continue the operation of maintenance; it must therefore finish in the next horizon. This scenario is also N P -hard. Nonetheless, SPT (resp. EDD) rules allowed solving the problem in an exact manner in the case of the minimization of sum of completion dates (resp. minimizing of maximum of advances).

Li and Cao. [START_REF] Li | Stochastic scheduling on a single machine subject to multiple breakdowns according to different probabilities[END_REF] study the same problem. The optimization criterion is the maximum of delays. A branch-and-bound algorithm is proposed for small instances. Larger instances are solved with the EDD rule based heuristic.

Kaabi [START_REF] Kaabi | Ordonnancement multicritère des job-shops flexibles : formulation, bornes inférieures et approche évolutionniste coopérative[END_REF] is interested in production and maintenance scheduling problem on a machine. The maintenance activities are assumed flexible (periodic), the optimization criterion that is considered takes into account both aspects of the production and the maintenance. Different heuristics are introduced to solve the problem.

Flow shop

Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] studies the flow shop problem with non-preemptive operations and flexible unavailability periods. The author assumes that a time window is allocated to each unavailability period. In the solution method, each unavailability period is shifted to the right in its time window. After scheduling all the jobs, the unavailability periods are moved to the left, when possible, to reduce idle times on the machines. Then, the operations succeeding to the unavailability period are moved to the left depending on the completion dates of the operations preceding them in the job routings.

Kaabi [START_REF] Kaabi | Ordonnancement multicritère des job-shops flexibles : formulation, bornes inférieures et approche évolutionniste coopérative[END_REF] is interested in the study of the flow shop in presence of periodic maintenance periods. The author proposed a branch-and-bound method and a genetic algorithm for solving the problem.

Job shop

Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] tackles the job shop problem with non-preemptive operations using the 2-job geometric approach. The moving of the unavailability periods is performed before all the jobs

Problems with flexible availability constraints

of the treatment sequence are scheduled. Hence, an unavailability period succeeding to an idle time on a machine is moved to the right if no operation remaining to schedule on the machine can be inserted in that idle time.

Harrath [START_REF] Harrath | Contribution à l'ordonnancement conjoint de la production et de la maintenance : application au cas d'un Job Shop[END_REF] is interested in the job shop problem with machines periodic maintenance activities trying to optimize two criteria: the makespan and the sum of advances and delays costs of maintenance. For the resolution, the author develops a multi-objective genetic algorithm.

Zribi [START_REF] Zribi | Ordonnancement des job-shops flexibles sous contraintes de disponibilité des machines[END_REF] develops heuristics based on a sequential strategy to study the problem with non-preemptive operations. The flexibility on starting dates of unavailability periods is treated as follows:

First heuristic: The unavailability periods are placed totally in the right in their time windows. Each time that an operation has to be scheduled on the machine, it tests if it can be processed before of after the next unavailability period of the processing machine. In case where it must be inserted after that unavailability period, this unavailability period is moved as early as possible in its time window to reduce the idle time.

Second heuristic: For each machine, all possible positions of the unavailability periods are tested. Indeed, an unavailability period can be inserted in all the positions of its time window. Two positions are possible: at the end of each operation that is in the interval, or at the starting date of the interval if their is no operation that is being processed at that time. The procedure used to insert the unavailability period is a modification of a branch-and-bound used by Benbouzid [START_REF] Benbouzid | Une Contribution l'étude de la performance et de la robustesse des ordonnancements conjoints Production/Maintenance -Cas Flow-Shop[END_REF] to solve the scheduling of production and maintenance in a flow shop with permutation.

Third heuristic: To calculate the due date of each operation, the unavailability periods are placed totally at the right of their time windows. To each operation is associated a due date which is equal to the starting date of the following operation in the job in this schedule which duration represents an upper bound of the problem. The problem is equivalent to a job shop problem with deadlines. EDD (Earliest Due Date) priority rule is used to schedule simultane-ously the production and the maintenance.

Flexible job shop

Gao et al. [START_REF] Gao | Scheduling jobs and maintenances in flexible job shop with a hybrid genetic algorithm[END_REF] investigate the flexible job shop scheduling problem with non-preemptive operations and non-fixed unavailability periods on machines: the completion time of a maintenance period is not fixed and is determined during the schedule construction. To solve the problem, the authors propose a hybrid genetic algorithm. Two kinds of neighborhoods, based on the concept of critical path, are proposed. A local search procedure is added to the genetic algorithm.

Conclusion

A state-of-the art covering the production scheduling problems including resources unavailability periods was presented in this Chapter. At first, problems with fixed machine unavailability periods were addressed. Then, we have dealt with the treatment, in literature, of the flexibility on unavailability periods.

Although research efforts were deployed to machine scheduling problems integrating resource availability constraints, they are essentially concentrated on problems with fixed availability periods. Moreover, the most studied problems are: single machine, parallel machines and flow shop problems.

Part II

Mathematical modeling and Resolution methods

Chapter 4

Mathematical modeling

We present in this chapter a mathematical modeling approach to tackle the job shop scheduling problem with resource availability constraints. This approach is often neglected by researchers for the strong complexity of the problem. We choose to develop this approach as it allows to solve some problem sizes, how to deal with resource unavailability constraints, to prove the relevance of introducing flexibility to the problem and evaluate the quality of solutions provided by the approximation methods and the column generation approach we develop.

We recall that the machines unavailability periods are known in advance. We introduce flexibility on starting dates of machine unavailability periods, i.e. an unavailability period can start in a time window defined by earliest and latest starting dates (Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF]Agg04]).

Moving the unavailability period in its time window allows the creation of an idle time on the resource to process a job operation earlier. We also introduce flexibility on durations of the unavailability periods. Depending on management decisions, a priority can be given to production. Indeed, it is possible when elaborating a schedule to modify durations of unavailability periods if, for each machine, the minimum number of unavailability periods and the minimum total unavailability duration are satisfied. We deal with the preemption between job operations and machine unavailability periods, as it seems relevant to study the possibility for an operation to be interrupted or not to better model the reality of industry. When preemption is allowed, a job operation can be interrupted by a machine unavailability period and then resumed, possibly incurring a penalty, as soon as the resource is available again. This can be the case of products that are grouped in lots. We then assume that, if an operation can be interrupted, it is only due to a machine unavailability period. Thus, we study the following different cases: strictly non-preemptive, resumable, non-resumable, semi-resumable operations and crossable and non-crossable unavailability periods. We are interested at first in minimizing the makespan.

Models of the job shop problem including the availability models are presented and extended to consider other optimization criteria, constraints on jobs and to model the flexible job shop scheduling problem with machine unavailability.

The chapter is organized as follows: in Section 4.1, the job shop scheduling problem with resource availability constraints is presented and models are given. Extensions of these models are discussed in Section 4.2.

Job shop problem with limited resource availability

We assume at first that preemption is not allowed (an operation cannot be interrupted by another operation or an unavailability period). A Mixed-Integer Linear Programming and an Integer Linear Programming models are presented and compared. The first model is using disjunctive variables, and the second model time-indexed variables. A mathematical model is then proposed which integrates the possibility for an operation to be interrupted or not and the possibility for an unavailability period to interrupt an operation or not. The model requires coefficients for operations representing penalties on preemption and for unavailability periods representing possibilities of preemption. To our knowledge, there is currently no study which includes all cases and, according to assumptions on operations or unavailability periods, new problems are considered. This generalization enables us to combine all problems into one and evaluate the relevance of some ideas that make sense but were not proved in literature yet.

This part is organized as follows. Section 4.1.1 presents mathematical models for the problem in the non-preemptive case and discusses the test results. Section 4.1.2 introduces the general disjunctive model and presents test results. All these tests were performed on generated benchmarks with a standard solver: ILOG CPLEX 10. Section 4.1.3 presents the numbers of variables and constraints induced by the models.

Mathematical models for the non-preemptive problem

The disjunctive formulation

This formulation is deduced from the one by Applegate and Cook [START_REF] Applegate | A Computational Study of the Job-shop Scheduling Problem[END_REF] based on the mathematical formalism of the disjunctive graph of Roy and Susman [START_REF] Roy | Les Problèmes dordonnancement avec Contraintes Disjonctives[END_REF]. Let G = (N, A, E) denote a graph, where the set N of nodes is formed of job operations and machine unavailability periods plus the dummy start and finish operations (which processing times are equal to 0). We use Aggoune's idea [Agg02, Agg04], i.e. each machine can be seen as a job whose operations are the unavailability periods. A is the set of conjunctive arcs between every two consecutive operations on a routing, between every two consecutive unavailability periods on a machine, and between the dummy start (resp. finish) operation and the first (resp. last) operation of each job or unavailability period of each machine. E is the set of disjunctive arcs that link operations of different jobs processed on the same machine, and link operations and unavailability periods on the same machine. The advantage of the formulation is that disjunctive constraints are easy to write. Note that a conjunctive arc leads to one constraint whereas a disjunctive arc corresponds to the choice between two constraints. Indeed, each disjunctive arc consists of a pair of arcs with opposite orientations such that any path through the graph contains only one of them.

This approach based on the disjunctive graph is also used by Gao et al. [START_REF] Gao | Scheduling jobs and maintenances in flexible job shop with a hybrid genetic algorithm[END_REF] to model the flexible job shop scheduling problem with resource availability constraints for the nonpreemptive case.

This model is studied according to three assumptions. First, we suppose that the starting dates of the unavailability periods are fixed and we try to solve the resulting model. Then, we assume that the starting dates of each unavailability period are not fixed but vary within a time window. Finally, we present the case of the problem without unavailability period.

Fixed starting dates for unavailability periods

The following additional variables are introduced: M inCmax (4.1)

X ij,i ′ j ′ : Binary variable to define which of operations O ij and O i ′ j ′ is processed before the other. It is equal to 1 if O ij is scheduled before O i ′ j ′ and
t i(j+1) ≥ t ij + p ij i = 1, .., n; j = 1, .., n i -1 (4.2) t ij -t i ′ j ′ + M X ij,i ′ j ′ ≥ p i ′ j ′ ∀O ij , O i ′ j ′ (O ij ̸ = O i ′ j ′ ) s.t. mr ij = mr i ′ j ′ (4.3) t i ′ j ′ -t ij + M (1 -X ij,i ′ j ′ ) ≥ p ij ∀O ij , O i ′ j ′ (O ij ̸ = O i ′ j ′ ) s.t. mr ij = mr i ′ j ′ (4.4) t ij -S rk + M Y ij,rk ≥ p ′ rk ∀h rk , ∀O ij s.t. mr ij = Mr (4.5) S rk -t ij + M (1 -Y ij,rk ) ≥ p ij ∀h rk , ∀O ij s.t. mr ij = Mr (4.6) Y ij,r(k+1) -Y ij,rk ≥ 0 ∀h rk , ∀O ij s.t. mr ij = Mr (4.7) Cmax ≥ t in i + p in i i = 1, .., n (4.8)
Cmax ≥ 0 (4.9)

t ij ≥ 0 i = 1, .., n; j = 1, .., n i (4.10) X ij,i ′ j ′ ∈ {0, 1} ∀O ij , O i ′ j ′ (O ij ̸ = O i ′ j ′ ) s.t. mr ij = mr i ′ j ′ (4.11) Y ij,rk ∈ {0, 1} ∀h rk , ∀O ij s.t. mr ij = Mr (4.12)
where M is a very large value.

Without unavailability periods

Referring to the model in the case of fixed starting dates for unavailability periods, when the machines are continuously available, disjunctive constraints [4.4] and [4.5] between the operations and the unavailability periods, transitivity constraint [4.7] between unavailability periods on the same machine, and variables Y ij,rk are removed.

Time-indexed formulation

This formulation, which to our knowledge has not been proposed before, is based on the one by Pritsker et al. [START_REF] Pritsker | Multi-Project Scheduling with Limited Resources: A Zero-One Programming Approach[END_REF] for the resource constrained project scheduling problem. The differences are that in the formulation of Pritsker et al. [START_REF] Pritsker | Multi-Project Scheduling with Limited Resources: A Zero-One Programming Approach[END_REF], a job has only one operation, there are no unavailability periods on resources, a resource can be used to process at least one operation, and the variables model the completion dates of the operations.

Problem with non-fixed starting dates for unavailability periods

In the formulation below, we need to know the schedule length The model is as follows:

M inCmax (4.15)

Lt ij ∑ t=Et ij x t ij = 1 i = 1, .., n; j = 1, .., n i (4.16) LS rk ∑ t=ES rk y t rk = 1 r = 1, .., m; k = 1, .., mr (4.17) Lt i(j+1) ∑ t=Et i(j+1) tx t i(j+1) - Lt ij ∑ t=Et ij tx t ij ≥ p ij i = 1, .., n; j = 1, .., n i -1 (4.18)
Cmax - ∑ min[t,LS rk ] q=max[t-p rk +1,ES rk ] y q rk . Another way to consider unavailability periods without modifying the model is to define fictitious unavailability periods at the end of the schedule length such as it has no influence; but being sure that this value of the schedule length is not reached.

Lt in i ∑ t=Et in i tx t in i ≥ p in i i = 1, .., n (4.19) n ∑ i=1 n i ∑ j=1;mr ij =r min[t,Lt ij ] ∑ q=max[t-p ij +1,Et ij ] x q ij + mr ∑ k=1 min[t,LS rk ] ∑ q=max[t-p rk +1,ES rk ] y q rk ≤ 1 t = 0, .., T -1; r = 1, .., m (4.20) Cmax ≥ 0 (4.21) x t ij ∈ {0, 1} i = 1, .., n; j = 1, .., n i ; t = Et ij , .., Lt ij (4.22) y t rk ∈ {0, 1} r = 1, .., m; k = 1, ..

Numerical results

Numerical experiments have been performed using a standard solver, ILOG CPLEX release 10, on some benchmarks which are generated following a procedure proposed by Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF]. Four classes of five benchmarks were generated, where the pairs (number of machines, number of jobs) are as follows: (5, 5), (5, 10), (10, 10), (10, 15). Each job visits all the machines exactly once. The processing time of each operation is randomly generated from the set of values {50, 60, .., 140, 150}.

Each machine has two unavailability periods. Their positions are generated so that they will have enough influence. The position of the first unavailability period is randomly generated, and the position of the second one is generated so that the distance between the two unavailability periods is at least equal to the longest processing time of the operations on the machine to which are added the lengths of the intervals [S r1 , LS r1 ], [ES r2 , S r2 ], which are set to 20. This is due to the fact that, for the general disjunctive model, if two unavailability periods are too close and if an operation is interrupted by the first unavailability period, it can overlap with the second one. The duration of an unavailability period on a machine is chosen as the average of the processing times of the operations to be processed on this machine.

The resolution time limit for each benchmark was set to 60 minutes. Table 4.1 summarizes the test results for the disjunctive formulation when the machines are continuously available, and when the starting dates of unavailability periods are fixed and non-fixed. The first column is the name of the benchmark which is of type XmY nZ, where X, Y and Z are respectively the number of machines, number of jobs and of the benchmark number in the class. Columns 2 to 5 give the results for the mixed integer linear program when no unavailability periods are planned on the machines. Columns 6 to 9 show the results for the mixed integer linear program when the starting dates of the unavailability periods are fixed, and Columns 10 to 13 show the results for the case of non-fixed dates. Columns 2, 6 and 10 correspond to the best lower bound, and Columns 3, 7 and 11 to the objective function of the best solution. Columns 4, 8 and 12 show the gap (expressed in percentage), i.e. ILOG CPLEX solved optimally benchmarks up to 10 machines and 10 jobs and provided feasible solutions to benchmarks of the (10,15) class. The results show that adding unavailability periods add more complexity to the problem. Indeed, it is more time consuming and only a feasible solution was provided to the instances 5m10n2 and 5m10n3 that were solved to optimality when the machines are continuously available. Moreover, It can be useful to allow starting dates of unavailability periods to vary within some time windows. It provides better values for the objective function. Indeed, for each unavailability period, the best slot is defined in its time window to create an idle time on the machine before or after to process an operation as early as possible. However, introducing the flexibility has a cost: it is more time consuming to solve the model for most of the benchmarks.

For the time-indexed formulation, the upper bounds on the horizon length T we assumed for Classes (5, 5), (5, 10) and (10, 10) are respectively 1500, 2000, 2500. These values were chosen based on the optimal solutions or best feasible solutions provided by CPLEX for the disjunctive formulation. These values are not very close or very far from the objective values of the solutions in order not to advantage or disadvantage too much the time-indexed formulation.

The earliest starting date of an operation O ij is obtained by adding its processing time to the earliest starting date of the previous operation in the job routing, starting from 0. The latest starting date of an operation O ij is obtained by subtracting its processing time from the latest starting date of the operation which immediately succeeds O ij in the job routing, starting from T . Tables 4.2, 4.4 and 4.6 provide the average numbers of variables and constraints per class of benchmarks. Column 1 is the benchmark class. Columns 2 and 3 give respectively the number of machines and the number of jobs in the class. Columns 4 and 5 show respectively the number of variables and constraints for the disjunctive formulation with non-fixed starting dates of unavailability periods, whereas Columns 6 and 7 present the same numbers for the time-indexed formulations.

The test results comparing the resolution of the disjunctive formulation and the time-indexed formulation are gathered in Tables 4.3, 4.5 and 4.7. Only results for the classes up to (10,10) are given. Note that the names of the benchmarks are modified by adding respectively div10 and div20 to the end of the initial name of the benchmark when the data are respectively divided by 10 and 20.

The test results for initial benchmarks are summarized in Table 4. Table 4.2 shows that the time-indexed formulation induces a huge number of variables and constraints compared to the disjunctive one. From Table 4.3, it can be observed that the time-indexed formulation give better linear relaxation than the disjunctive formulation but with a larger CPU time. It can also be observed that, due to the huge number of variables and constraints, the test results of the time-indexed formulation are bad compared to the test results of the disjunctive formulation. Indeed, even for small benchmarks (Class (5,5)) which were optimally solved in less than one second for the disjunctive formulation, only feasible solutions are obtained for the time-indexed formulation except for one benchmark that is solved to optimality. For larger benchmarks, the latter was not able to provide a feasible solution after 60 minutes, whereas it is possible to solve benchmarks up to 10 machines and 10 jobs using the disjunctive formulation.

To reduce the numbers of variables and constraints for the time-indexed formulation, we modified benchmarks by dividing by 10 the schedule length and the durations and the dates of operations and unavailability periods. We ensured to get integer values by rounding the non-integer values to the immediately upper integer value. This implies rounded values of the objective function for some solutions.

Table 4.4 shows that the modification of the benchmark data decreases the number of variables and constraints for the time-indexed formulation by approximatively 10 times whereas it has no influence for the disjunctive formulation.

From Table 4.5, it can be observed that, for the time-indexed formulation, problems with 5 machines and 5 jobs are optimally solved and feasible solutions are obtained for problems with 5 machines and 10 jobs. However, we still obtain better results with the disjunctive formulation. It seems then more relevant to model the problem using the disjunctive formulation. However, the results of the time-indexed formulation can be improved by elaborating an appropriate

Job shop problem with limited resource availability

Job shop problem with limited resource availability

To improve again the results of the time-indexed formulation, the initial benchmarks were modified by dividing by 20 the schedule length, the processing times and the durations of the operations and the unavailability periods.

General disjunctive model

As the disjunctive formulation provides better results for the non-preemptive problem than the time-indexed model, we generalize it to include all problems dealt in the literature (see Section 4.1.1). To our knowledge, there is currently no study which includes all cases and, depending on the assumptions on operations or unavailability periods, new problems are considered. This generalization enables us to combine all problems into one. Coefficients of penalty and preemption introduced respectively for operations and unavailability periods allow each of them to have its own characteristic; this helps us to model a large number of workshop configurations. Note that there is a disjunction between an operation and an unavailability period if the latter starts before the operation or if the unavailability period is non-crossable or the operation is non-preemptive. The case where the operation is semi-resumable and the unavailability period is crossable can be easily deduced from the disjunctive constraints.

The model is presented in Section 4.1.2.1. In Section 4.1.2.2 we introduce flexibility on the unavailability periods. Finally, Section 4.1.2.3 presents and discusses test results performed on the generated benchmarks with ILOG CPLEX 10.

Mathematical model

Note that the completion date of an operation O ij cannot be completely represented by t ij + p ij when O ij is interrupted by unavailability period h rk , since this quantity will be increased by the duration p ′ rk of the unavailability period and the proportion of the operation to redo and which spans from 0 to p ij . It is thus necessary to use the completion date C ij as a variable of the model to model this case, otherwise the durations will overlap.

The model uses the coefficients of penalty on preemption α ij and the coefficient of preemption β ijk

The following additional variable is introduced: Z ij,rk : Binary variable which is equal to 1 if operation O ij starts before unavailability period h rk (i.e. Y ij,rk is equal to 1) and finishes after h rk , and is equal to 0 otherwise.

The model is as follows:

min Cmax (4.24)

t i(j+1) ≥ Cij i = 1, .., n; j = 1, .., ni -1 (4.25) tij + M X ij,i ′ j ′ ≥ C i ′ j ′ ∀ (Oij ̸ = O i ′ j ′ ) s.t. mrij = mr i ′ j ′ (4.26) t i ′ j ′ + M (1 -X ij,i ′ j ′ ) ≥ Cij ∀ (Oij ̸ = O i ′ j ′ ) s.t. mrij = mr i ′ j ′ (4.27) tij -S rk + M Y ij,rk ≥ p ′ rk ∀h rk , ∀Oij s.t. mrij = Mr (4.28) -tij + S rk + M (1 -Y ij,rk ) ≥ (1 -β ijk Z ij,rk )pij + εβ ijk Z ij,rk ∀h rk , ∀Oij s.t. mrij = Mr (4.29) β ijk Z ij,rk ≤ β ijk Y ij,rk ∀h rk , ∀Oij s.t. mrij = Mr (4.30) Cij -tij + β ijk M Z ij,rk ≥ pij ∀h rk , ∀Oij s.t. mrij = Mr (4.31) β ijk [Cij -tij + M (1 -Z ij,rk )] ≥ β ijk [pij + p ′ rk + αij (S rk -tij )] ∀h rk , ∀Oij s.t. mrij = Mr (4.32) β ijk [-tij + S rk -M (1 -Z ij,rk )] ≤ β ijk (pij -ε) ∀h rk , ∀Oij s.t. mrij = Mr (4.33) Y ij,r(k+1) ≥ Y ij,
Cij ≥ 0 i = 1, .., n; j = 1, .., ni (4.38) X ij,i ′ j ′ ∈ {0, 1} ∀ (Oij ̸ = O i ′ j ′ ) s.t. mrij = mr i ′ j ′ (4.39) Y ij,rk ∈ {0, 1} ∀h rk , ∀Oij s.t. mrij = Mr (4.40) Z ij,rk ∈ {0, 1} ∀h rk , ∀Oij s.t. mrij = Mr (4.41)
where M is a very large value.

Here also the objective is to minimize the makespan C max ([4.24]

rk + α ij (S rk -t ij ))
. This is because:

C ij = t ij + (S rk -t ij ) + p ′ rk + (p ij -(S rk -t ij )) + α ij (S rk -t ij )
where (S rk -t ij ) represents the part of O ij processed before the beginning of h rk , (p ij -(S rkt ij )) the part remaining to carry out and α ij (S rk -t ij ) the part to redo. This happens only when

t ij < S rk < t ij + p ij , which is replaced by t ij + ε ≤ S rk ≤ t ij + p ij -ε (Constraints [4.29], [4.33]
) and β ijk = 1 (preemption is allowed). This is due to the fact that introducing strict inequalities in a model makes it non linear. Coefficient ε must be chosen as small as possible to guarantee the equivalence between the two expressions. In addition, as in Constraint

Flexibility on machine unavailability periods

We add flexibility on starting dates of the unavailability periods by adding Constraints [4.13] and [4.14] to the model. We also introduce flexibility on the duration of unavailability period h rk by assuming that it can vary in a set of V rk values {v rk1 , v rk2 , ••, v rkl , ••, v rkV rk }. We denote p ′ rkl the binary variable which defines if v rkl is part of the duration of h rk ; i.e. p ′ rkl is equal to 1 if v rkl is chosen and 0 otherwise. We use binary variables to express durations of unavailability periods instead of integer variables because they are easier to express, and we believe the models with binary variables are easier to solve by standard solvers. The values of durations can be different from an unavailability period to another, which means that each unavailability period can have its own policy. We then add to the model the following constraints: expresses the fact that, on each machine M r , the number of unavailability periods should not be smaller than n r , and Constraint [4.45] expresses the fact that the total unavailability duration on each machine M r should not be smaller than h r . This implies that, even if the lower bound on the total unavailability duration is satisfied with less unavailability periods than n r , it must be balanced on at least n r unavailability periods.

tij -S rk + M Y ij,rk ≥ V rk ∑ l=1 v rkl p ′ rkl ∀h rk , ∀Oij s.t. mrij = Mr (4.42) β ijk [Cij -tij + M (1 -Z ij,rk )] ≥ β ijk [pij + V rk ∑ l=1 v rkl p ′ rkl + αij (S rk -tij )] ∀h rk , ∀Oij s.t. mrij = Mr (4.43) mr ∑ k=1 V rk ∑ l=1 p ′ rkl ≥ nr r = 1, ..,

Remarks:

1. It is possible to have more than one value v rkl for an unavailability period.

To have at most one value, the following constraint must be added to the model:

V rk ∑ l=1 p ′ rkl ≤ 1
Each of the two policies needs an adjustment in the definition of the set of values v rkl and the constraints.

2. It is possible that no value is associated to an unavailability period to set the priority to job production instead of machine unavailability.

3. In Constraint [4.44], if at least two unavailability periods are pasted, number n r means number of parts of machine unavailability. To refer to n r as the number of unavailability periods, it is necessary to add the constraint of remark 1.

Numerical results

The test results for the general model are summarized in Tables 4.8 through 4.11 depending on the considered case. Their structure is the same as the one of Table 4.1 except that Columns 2 to 5 represent test results for fixed unavailability periods, Columns 6 to 9 summarize test results for non-fixed starting dates and fixed durations of unavailability periods, and Columns 10 to 13 give test results for non-fixed stating dates and non-fixed durations of unavailability periods.

Comparing the results for fixed unavailability periods and non-fixed starting dates and fixed durations of unavailability periods, Table 4.8 summarizes the test results for the non-preemptive case. This case is obtained by setting all coefficients β ijk to 0. For the other cases (resumable, non resumable and semi-resumable), all coefficients β ijk are set to 1, whereas coefficients α ij are respectively set to 0, 1 and 0.5. The associated results are summarized in Tables 4.9, 4.10 and 4.11. Note that we provide results for these cases because they are the most representative. We set the value of ε to 1. For testing the flexibility on durations of unavailability periods, we set n r = 1 and h r equal to half amount of unavailability of the machine M r .

The standard solver (CPLEX 10) solved optimally benchmarks up to 10 machines and 10 jobs for the non-preemptive case and up to 5 machines and 5 jobs for the other cases in very short time. But in general it takes a long time to solve problems to optimality, and only a feasible solution is often provided.

The results confirm that it can be effective to allow the starting dates of unavailability periods to vary within some time windows. From Tables 4.8 and 4.10, it can be verified that, due to the penalty induced by reprocessing the entire operation when it is interrupted by an unavailability period in a deterministic context, it is more relevant not to interrupt the operation. Indeed, for the non-resumable case, the test results show that no interruption of an operation by an unavailability period is allowed except if the slot on the machine, before the unavailability period, cannot be used to process another operation. Hence, the non-preemptive and non-resumable cases are equivalent. Tables 4.8, 4.9 and 4.11 show that it is more interesting to allow preemption between operations and unavailability periods because less time is needed to complete all jobs. Indeed, for the resumable case, as interruption is allowed with no penalty, all operations can be processed as early as possible, and then less idle time is left on machines; for the semi-resumable case there is a gain in allowing preemption with a penalty smaller than 1 (which corresponds to 100 percent of the operation processing time). When durations of unavailability periods are not fixed, we assumed that the minimum number of unavailability periods on each machine is 1; and the minimum amount of unavailability of each machine is equal to half the total unavailability duration. The test results show that it is relevant to introduce flexibility on the durations of unavailability periods, since better results are obtained for the makespan. However, it induces more complexity expressed by the CPU time, and less instances of Classes (5,10) and (10,10) are solved to optimality.

Job shop problem with limited resource availability

Number of constraints and variables of the models

Let us denote:

n ir the number of operations of job J i to process on machine M r ,

N = ∑ n i=1 n i , N h = ∑ m r=1 m r , N X = ∑ m r=1 ∑ n-1 i=1 ∑ n i ′ =i+1 n ir n i ′ r , N Y = ∑ m r=1 ∑ n i=1 n ir m r .

Non-preemptive problem

Disjunctive formulation

Fixed starting dates for unavailability periods The number of variables in this model are:

1 variable C max , N variables t ij , N X variables X ij,i ′ j ′ and N Y variables Y ij,

Time-indexed formulation

The number of variables in this model are: The comparison on the numbers of variables and constraints between the disjunctive and time-indexed formulations is made in the numerical experiments (see Section 4.2.1.3).

1 variable C max , ∑ n i=1 ∑ ni j=1 (Lt ij -Et ij + 1)

General disjunctive model

The number of variables in this model are: 1 variable C max , 2N variables t ij and C ij , N X variables X ij,i ′ j ′ and 2N Y variables Y ij,rk and Z ij,rk . The number of constraints are: N -n

Job shop problem with limited resource availability

Model extensions

Flexible job shop problem with resource availability constraints

In this section, we deal with the flexible job shop problem when resources are not continuously available. It is an extension of the job shop problem under resource availability constraints. Its specificity is that a job operation can be processed by more than one machine but needs only one. This offers more flexibility to the production system but induces more complexity. Indeed, in addition to the sequencing problem, an assignment problem of the operations to the machines occurs. The mathematical model we propose is a generalization of the general disjunctive model presented in Section 4.1.2.

Problem definition

The flexible job shop scheduling problem with resource availability constraints can be defined as a set of n jobs J = {J 1 , J 2 , ••, J n } to be processed on a set of m machines

M = {M 1 , M 2 , ••, M m }. Each job J i is composed of a linear sequence of n i operations {O i1 , O i2 , ••, O ij , ••, O ini }.
Each machine can process only one operation at a time and each operation O ij needs only one machine M a in a set A ij of machines during p a ij time units (the processing time of an operation depends on the machine on which it is processed). Note that, for the classical job shop scheduling problem, the machine is defined a priori.

There are m r unavailability periods {h r1 , h r2 , ••, h rk , ••, h rmr } on each machine M r . The starting date S rk of unavailability period h rk of duration p ′ rk is known in advance and can vary in the interval [ES rk , LS rk ]. The machine on which operation O ij is processed is denoted mr ij .

The objective is to assign a machine to operation O ij , and to determine its starting date t ij and completion date C ij . The objective function is to minimize the makespan C max .

The flexible job shop problem is N P -hard when the number of machine is two or more and the number of jobs is three or more J(M P M )2|n = 3|C max .

Disjunctive model

This formulation is deduced from the one we presented in Section 4.1.2 for the job shop scheduling problem with resource availability constraints and the one proposed in Roux [Rou97] for 4.2 Model extensions complex shop scheduling problems. In this latter an operation may need more than one resource to be processed. Each resource must be chosen in a set of values. The job routings are non-linear which means that an operation can have more than one predecessor and one successor. The resources are assumed to be continuously available.

We introduce to the model the following additional variables:

x a ij : A binary variable which is equal to 1 if operation O ij is processed on machine M a and 0 otherwise, p ij : Processing time of operation O ij which depends on the selected machine, W ij,rk : A binary variable which represent the linearization of

Z ij,rk ×p ij . Hence, if Z ij,rk = 0 (resp. Z ij,rk = 1), then W ij,rk = 0 (resp. W ij,rk = p ij ).
The model is as follows: that must be processed on the same machine, i.e. that operation O ij is either processed before or after operation O i ′ j ′ . If at least one of operations O ij and O i ′ j ′ is not processed on machine M a (x a ij = 0 or x a i ′ j ′ = 0) the constraints are always satisfied. If the two operations are processed on M a (x a ij = 1 and

min Cmax (4.47) ∑ a∈A ij x a ij = 1 i = 1, .., n; j = 1, .., ni(4.48) pij ≥ ∑ a∈A ij p a ij x a ij i = 1, .., n; j = 1, .., ni(4.49) t i(j+1) ≥ Cij i = 1, .., n; j = 1, .., ni -1 (4.50) tij + M X ij,i ′ j ′ ≥ C i ′ j ′ -M (2 -x a ij -x a i ′ j ′ ) ∀a ∈ (Aij ∩ A i ′ j ′ ), ∀(Oij ̸ = O i ′ j ′ ) (4.51) t i ′ j ′ + M (1 -X ij,i ′ j ′ ) ≥ Cij -M (2 -x a ij -x a i ′ j ′ ) ∀a ∈ (Aij ∩ A i ′ j ′ ), ∀(Oij ̸ = O i ′ j ′ ) (4.52) tij -S rk + M Y ij,rk ≥ p ′ rk -M (1 -x a ij ) ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.53) -tij + S rk + M (1 -Y ij,rk ) ≥ pij -β ijk W ij,rk + εβ ijk Z ij,rk -M (1 -x a ij ) ∀a ∈ Aij ,
β ijk Z ij,rk ≤ β ijk [Y ij,rk + M (1 -x a ij )] ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.55) β ijk W ij,rk ≤ β ijk [M Z ij,rk + M (1 -x a ij )] ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.56) β ijk W ij,rk ≤ β ijk [pij + M (1 -x a ij )] ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.57) β ijk W ij,rk ≥ β ijk [pij -M (1 -Z ij,rk ) -M (1 -x a ij )] ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.58) Cij -tij + β ijk M Z ij,rk ≥ pij -M (1 -x a ij ) ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.59) β ijk [Cij -tij + M (1 -Z ij,rk )] ≥ β ijk [pij + p ′ rk + αij (S rk -tij ) -M (1 -x a ij )] ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.60) β ijk [-tij + S rk -M (1 -Z ij,rk )] ≤ β ijk [pij -ε + M (1 -x a ij )] ∀a ∈ Aij , ∀h rk , ∀Oij s.t. a = Mr (4.61) Y ij,r(k+1) ≥ Y ij,rk -M (1 -x a ij ) ∀a ∈ Aij ,
X ij,i ′ j ′ ∈ {0, 1} ∀a ∈ (Aij ∩ A i ′ j ′ ), ∀(Oij ̸ = O i ′ j ′ ) (4.70) Y ij,rk ∈ {0, 1} ∀a ∈ Aij ,
x a i ′ j ′ = 1), O ij is processed after O i ′ j ′ if X ij,i ′ j ′ = 0 and O ij is processed before O i ′ j ′ if X ij,i ′ j ′ =

Optimization criteria

The extensions of the models concern the sum of completion dates of jobs ∑ n i=1 C i and maximum lateness L max . There is no hierarchy between the makespan C max and ∑ n i=1 C i . However, C max can be made equivalent to L max .

Minimization of the sum of completion dates of jobs ∑ n i=1 C i

In the general disjunctive model, the objective function [4.24] is replaced by

min n ∑ i=1 C ini
and Constraint [4.35] is removed. The minimization of the weighted sum of completion dates of jobs ∑ n i=1 w i C i can also be used.

Tests results

The test results for initial benchmarks are presented in Tables 4.12 through 4.15. Tables 4.12 summarizes the test results for the non-preemptive problem. Columns 2 and 3 present represent respectively the lower bound and the CPU time of the linear relaxation. Columns 4 to 7 present the results for fixed starting dates of unavailability periods, whereas Columns 8 to 11 present the results for non-fixed starting dates of unavailability periods. Columns 4 and 8 correspond to the best lower bound, and Columns 5 and 9 to the objective function of the best solution. Columns 6 and 10 show the gap. Columns 7 and 11 give the CPU time (in seconds).

The test results for resumable, non-resumable and semi-resumable problems are respectively presented in Tables 4.14, 4.13 and 4.15. Columns 2 to 5 present the results for fixed starting dates of unavailability periods, whereas Columns 6 to 9 present the results non-fixed starting dates of unavailability periods. Columns 2 and 6 correspond to the best lower bound, and Columns 3 and 7 to the objective function of the best solution. Columns 4 and 8 show the gap. Columns 5 and 9 give the CPU time (in seconds). The observations made for the C max minimization are still valid for ∑ i C i . Indeed, the standard solver (CPLEX 10) solves optimally instances up to Class (10,10) for non-preemptive problems and for Class (5,5) for the other cases in very short time. For the other instances, only a feasible solution is often provided.

It is also observed that it can be effective to allow the starting dates of unavailability periods to vary within some time windows. Moreover, due to the penalty induced by reprocessing the entire operation when it is interrupted by an unavailability period in a deterministic context, it is more relevant not to interrupt the operation; and the non-preemptive and non-resumable cases are equivalent. It is also more interesting to allow preemption between operations and unavailability periods because less time is needed to complete all jobs.

Columns 2 of Table 4.12 show that the gap between the bound of the linear relaxation and the integer value of the solution of an instance is relatively high. These values are more useful in Chapter 6 to better appreciate the quality of the linear relaxation of the column generation approach. Comparing the tests results of the two criteria C max and ∑ i C i , the linear relaxation of ∑ i C i minimization problem is better than C max because the solution gaps of the instances are smaller.

Model extensions

Minimization of maximum lateness L max

The maximum lateness L max measures the worst violation of the due dates d i .

In the general disjunctive model, the objective function [4.24] is replaced by

minL max ,
and Constraint [4.35] is replaced by

L max ≥ C ini -d i .

Constraints on job operations

Introduction of release dates on jobs r i

We assume that the release date r i is introduced for job J i . It represents the earliest date at which job j can starts its processing. In the general disjunctive model, the following constraint is added: t i1 ≥ r i .

Introduction of deadlines on jobs di

The deadline di is introduced for job J i . It represents the date at which the processing of job J i must be completed. In the general disjunctive model, the following constraint is added:

C ini ≤ di .

Conclusion

In this chapter, mathematical models were presented for the job shop scheduling problem with resource availability constraints. Two integer linear programming models were first presented when preemption is not allowed. Numerical experiments performed with a standard solver (CPLEX 10) show that the disjunctive formulation provides better results than the time-indexed formulation. We also introduced flexibility on the starting dates of unavailability periods.

A general disjunctive formulation was then proposed which models preemption between operations and unavailability periods, by integrating all possible cases of interruption of an operation by an unavailability period. In this model, we also added flexibility on the durations of unavailability periods. The numerical experiments showed that introducing flexibility is relevant; it is also relevant to allow preemption. But they also showed that a standard solver quickly reaches its limits for the resolution of these benchmarks. This is due to the strong complexity of the studied problems.

Mathematical modeling allowed for a better understanding of the problems through their mathematical expressions. The models showed how to deal with resource unavailability constraints; and they proved the relevance of introducing flexibility to the problems, not only to represent the reality in industry, but also to find better solutions to the problems. The models also allow for a better evaluation of the quality of solutions provided by approximation approaches, as it is difficult to provide theoretically good bounds for problems with machine unavailability periods.

The general disjunctive model was extended to consider other optimization criteria, to include other constraints on tasks and to model the flexible job shop scheduling problem with resource availability constraints. previous operation in the job routing. The operation should not overlap an operation already scheduled or an unavailability period. If all the conditions are met, an operation can then be scheduled on a machine strictly before an operation already scheduled.

2. The flexibility on the starting dates of the unavailability periods: An unavailability period can move in its time window defined by its earliest and latest starting dates to create a sufficient idle time before or after the unavailability period to insert the operation as early as possible.

3. The preemption between a preemptive operation and a crossable period. The operation can be interrupted by the unavailability period if it cannot be completely processed before. This can possibly induce a penalty when the related coefficient is larger than or equal to 0.

We assume that each machine M r has m r unavailability periods. Hence, a schedule length is decomposed on machine M r in m r + 1 availability periods I r1 , I r2 ,.., I r(mr+1) . We prefer to use the term interval instead of availability period to avoid the confusion between an availability period and an unavailability period. The starting and end dates of the interval I rl are respectively SI rl and T I rl .

Interval selection

To construct a schedule, each operation must be inserted in one of the intervals that define the machine availability. These intervals are not static, they change when scheduling is being built. Some intervals are modified and others are created or deleted. The most suitable situation is to reduce the interval lengths as much as possible because they correspond to idle times on the machines.

The insertion interval I rl of the current operation O ij is defined according to • The completion date of the immediate previous operation in the job routing O i(j-1) ,

• The earliest availability interval of the machine,

• The length of the interval LI rl ,

• The existence of an unavailability period h rk , before the current interval I rl (the starting date of the unavailability period corresponds to the end date of the precedent interval S rk = T I r(l-1) ; the end date of the unavailability period corresponds to the starting date of the current interval T rk = SI rl ); or between this I rl and its immediate successor I r(l+1) (the starting date of the unavailability period corresponds to the end date of the current interval S rk = T I rl ; and the end of the unavailability period corresponds to the starting date of the interval succeeding immediately to the interval T rk = SI r(l+1) ), this can modify the length of the interval.

Construction methods

After each insertion, the intervals are updated. Note that an additional interval is created when the completion date of the operation preceding immediately the current operation in the job routing is larger than the starting date of the interval and the current operation finishes before the end of the current interval. Moreover, an interval can be deleted by moving an unavailability period when an operation is entirely inserted in all the interval.

Position of an operation relative to an unavailability period

When an operation is in presence of an unavailability period, two questions arise:

-Is it possible to move the unavailability period to insert the operation in the current interval and/or to process it earlier?

-Is it possible to interrupt the operation by the unavailability period to start the operation earlier?

Hence, in this section, we answer these questions by discussing cases of flexibility on the starting dates of the unavailability periods and for operation preemption relative to an unavailability period. Indeed, three cases are presented: A, B, and C. For each case, the conditions and how the intervals are updated are given.

Unlike the general mathematical model presented in Chapter 4, we consider here either the flexibility or the preemption but not both at the same time. This implies that there is a set of solution configurations that cannot be explored. But since the problem is N P -hard, it is also hard to find a good solution in reasonable time, in particular when preemption is allowed and flexibility on unavailability periods is introduced.

Note that cases A and B model flexibility; whereas case C models preemption (See Figures 5.1 and 5.2). The difference between cases A and B is that, in case A, we are interested in moving the unavailability periods placed at the beginning of the current interval and, in case B, at the end of the interval. Cases B and C are very close. The only difference is that in case C, the unavailability period cannot move and, as preemption is allowed, the operation is interrupted by the unavailability period and inserted in the current and following intervals.

Case A: Flexibility In this case, unavailability period h rk precedes immediately interval I rl , and can move. The following conditions must be satisfied:

• The previous operation in the job routing O i(j-1) must finish at most at the beginning of the current interval I rl (C i(j-1) ≤ SI rl )

• The starting date of the current interval I rl corresponds to the end date of unavailability period h rk (SI rl = T rk ) • Unavailability period h rk can move to the left in its time window (ES rk < S rk )

• The previous operation in the job routing O i(j-1) must finish before the beginning of the current interval I rl (C i(j-1) < SI rl ). Otherwise, even if unavailability period h rk starts earlier in its time window, operation O ij will start at SI rl .

It is not necessary to move unavailability period h rk to finish before the completion date of the previous operation in the job routing O i(j-1) , because the current operation O ij cannot be processed before (C i(j-1) ≤ Trk = Srk + p ′ rk ). h rk cannot start before its earliest starting The following values are calculated:

Srk = max{SI r(l-1) , ES rk , C i(j-1) -p ′ rk } t ij = Srk + p ′ rk C ij = t ij + p ij
To entirely insert the operation in the interval by moving the unavailability period, the following condition must be satisfied:

S rk = Srk T rk = Srk + p ′ rk T I r(l-1) = Srk SI rl = C ij If SI r(l-1) = Srk (resp. C ij = T I rl ), the interval I r(l-1) (resp. I rl ) is deleted. Case A.2
• Unavailability period h rk can move to the right in its time window (S rk < LS rk ) 124

Construction methods

• The precedent operation in the job routing O i(j-1) must finish after the end date of the previous interval I r(l-1) (T I r(l-1) ≤ C i(j-1) ) otherwise it is similar to case B.

It is not necessary for unavailability period h rk to move to start before the end of the current operation O ij (C ij ≤ Srk ). h rk cannot start after its latest starting date ( Srk ≤ LS rk ). h rk cannot finish after the end of the current interval I rl ( Srk ≤ T I rl -p ′ rk ).

This implies that

C ij ≤ Srk ≤ min{LS rk , T I rl -p ′ rk }
The following values are calculated:

t ij = C i(j-1) C ij = t ij + p ij
Hence, the operation can be entirely inserted in the interval by moving the unavailability period if the following condition is satisfied:

C ij + p ′ rk ≤ min{LS rk + p ′ rk , T I rl }
Then the unavailability period and the intervals will be updated as follows:

S rk = C ij T rk = S rk + p ′ rk T I r(l-1) = t ij SI rl = T rk
If T I rl = T rk , the interval I rl will be deleted.

Case B: Flexibility

The difference between cases A and B is that, in case A, we are interested in moving the unavailability periods placed at the beginning of interval I rl and, in case B, at the end of the interval. In cases A.2 and B, the unavailability period is moved to the left. The difference is that, in case A.2, operation O ij is inserted in interval I r(l-1) whereas, in case B it is inserted in I rl .

The conditions for case B are:

• The previous operation in the job routing O i(j-1) must finish before the end date of the current interval I rl (C i(j-1) < T I rl ), otherwise it is the same as case A.2.

• The end date of the current interval I rl is the starting date of unavailability period h rk (T I rl = S rk )

• The starting date of the next interval I r(l+1) corresponds to the end date of unavailability period h rk (SI r(l+1) = T rk ).

125

• Unavailability period h rk can move to the right in its time window (S rk < LS rk ) (see Figure 5.4) It is not necessary for unavailability period h rk to move more than the end of the current operation O ij (C ij ≤ Srk ). h rk cannot start after its latest starting date ( Srk ≤ LS rk ). h rk cannot finish after the end of the next interval ( Srk ≤ T I r(l+1) -p ′ rk ).

This implies that

C ij ≤ Srk ≤ min{LS rk , T I r(l+1) -p ′ rk }
The following values are calculated:

t ij = max{C i(j-1) , SI rl } C ij = t ij + p ij 126

Construction methods

The operation can be entirely inserted in the interval by moving the unavailability period if:

C ij + p ′ rk ≤ min{LS r k + p ′ rk , T I r(l+1) })
then the unavailability period and the intervals will be updated:

S rk = C ij T rk = S rk + p ′ rk T I rl = t ij SI r(l+1) = T rk
If t ij = SI rl (resp. T I r(l+1) = T rk ), the interval I rl (resp. I r(l+1) ) will be deleted.

Case C: Preemption

The representation of this case is the same as for case B. The only difference is that, in case C, the unavailability period cannot move. Since the preemption is allowed, operation O ij is interrupted by unavailability period h rk and inserted in intervals I rl and I r(l+1) .

The conditions for case C are listed below (See Figure 5.5):

• The previous operation in the job routing O i(j-1) must finish before the end date of the current interval I rl (C i(j-1) < T I rl ) (as for case B).

• The end date of the current interval I rl corresponds to the starting date of unavailability period h rk (T I rl = S rk ).

• The starting date of the next interval I r(l+1) is the end date of unavailability period h rk (SI r(l+1) = T rk )

• The operation cannot be entirely inserted in the current interval I rl and unavailability period h rk cannot move to the right in its time window (S rk = LS rk ).

• The preemption is allowed

β ijk = 1 (h rk crossable and O ij preemptive).
The following values are calculated (interruption of operation O ij by unavailability period h rk ):

t ij = max{SI rl , C i(j-1) } C ij = t ij + (S rk -t ij ) + p ′ rk + [p ij -(S rk -t ij )] + α ij (S rk -t ij )
where (S rk -t ij ) is the part of O ij processed before the beginning of h rk , (p ij -(S rk -t ij )) the part remaining to carry out and α ij (S rk -t ij ) the part to redo. To simplify,

C ij = t ij + p ′ rk + p ij + α ij (S rk -t ij )
If the operation can be entirely inserted in the interval when interrupted by the unavailability period by satisfying the condition C ij ≤ T I r(l+1) , then the unavailability period and the intervals will be updated:

T I rl = t ij SI r(l+1) = C ij If t ij = SI rl (resp. T I r(l+1) = C ij )
, the interval I rl (resp. I r(l+1) ) will be deleted.

Construction methods

Procedure of Operation Insertion in the interval (OIp)

This procedure describes a strategy to insert operation O ij in interval I rl . Five main steps are possible to achieve the insertion (See Figure 5.6):

Step 1: The operation can be entirely inserted in the interval (p ij ≤ T I rl -max{C i(j-1) , SI rl }).

Note that O ij cannot start before max{C i(j-1) , SI rl }. Check if there is an unavailability period and if it can move (Case A). The objective is to insert the operation as early as possible. Else, insert the operation and update the interval. (t ij = max{C i(j-1) , SI rl }, If the operation cannot be entirely inserted in the interval (p ij > T I rl -max{C i(j-1) , SI rl }), go to Step 2.

C ij = t ij + p ij )
Step 2: Check if the unavailability period can move (Case A). The objective is to insert the operation in the interval. Else, go to step 3.

Step 3: Check if there is an unavailability period and if it can move to the right (Case B). The objective is to insert the operation in the interval. Else, go to Step 4.

Step 4: Check if preemption is allowed. Check if the operation can be inserted in the current and

Construction methods

following intervals (Case C). The objective is to insert the operation in the interval. Else, go to Step 5.

Step 5: Search for another interval. The next one is I r(l+1) as we are searching to insert the operation as early as possible. Perform OIp procedure with I rl ← I r(l+1) .

Remarks:

1

. Two unavailability periods are not too close to each other (this assumption is also considered in Chapter 4). Then when inserting an operation in an interval, this operation is in presence of only one unavailability period. Hence, we have either Case A or Case (B or C).

2. For the first operation of the job (j = 1), as it has no predecessor, we set C i(j-1) = 0. It is then only a fictive value used to keep unchange some of the formulas used above.

3. If the current interval I rl is the first interval on the machine (l = 1), Case A.1 cannot be valid and, for, Case A.2 we set SI r(l-1) = T I r(l-1) = 0.

4. The way the cases are ordered implies that priority is given to the flexibility. We can reorder the cases starting by C and then A and B, to set the priority to preemption. Note that each time that the order changes, a new scheduling strategy is defined. In the experiments, other strategies are tested.

5.

Procedure OIp is a building block composed of other building blocks.

Job based heuristics

In the following, we present three methods that prioritize the job operations. In the first two heuristics, Job priority Heuristic (JpH) and Operation priority Heuristic 1 (OpH1), we introduce randomness in the ordering of the jobs and the operations for the insertion respectively. In the third heuristic OpH2, the operation to insert is selected according to a given rule. JpH and OpH1 can be used as evaluating blocks in methods that use many solutions at the same time to provide better ones as it is the case for genetic algorithms. OpH2 can be used to provide a starting solution for methods that, from an initial solution, try to improve the obtained solution at each iteration. The solution is evaluated at each iteration by JpH or OpH1 (depending on the structure of the priority sequence).

Job priority Heuristic (JpH)

This heuristic was proposed by Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] for the non-preemptive job shop scheduling problem with machine availability constraints. We introduce a new procedure for operation insertion to take into account the flexibility on starting dates of the unavailability periods and operation preemption, when inserting an operation in an interval. The flexibility was treated in [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF] by positioning each unavailability period at the end of its time window. Then, in the resulting schedule an operation or an unavailability period are moved to start earlier each time that it is possible.

The construction of a schedule is made job after job. To construct a feasible schedule, the heuristic operates according to the following steps: Use an initial priority sequence s between the jobs {J 1 , .., J n }. Each time a job J i is selected, the heuristic determines, for each operation O ij , with respect to its order in the job routing, the subinterval in the planing horizon on the associated machine mr ij to be processed as early as possible, without overlapping an unavailability period or an operation already scheduled. After each insertion, intervals and unavailability periods are updated. A new interval may be created or an existing one can be deleted. The main steps are summarized in Algorithm 4

The operation insertion in the interval is made according to the Operation Insertion procedure (OIp).

Note that the performance of the heuristic strongly depends on the job priority order in the initial sequence. This is why, in the experiments, the heuristic is performed several times in order to evaluate its performance. To obtain better results, it can be combined with a metaheuristic.

Algorithm 4 Algorithm of Job priority Heuristic (JpH) Begin

Define an initial job priority sequence s for each job J i in the sequence s do for each operation O ij in the job routing do Use the procedure OIp to insert operation O ij on its machine m ij end for end for end Remarks:

• JpH heuristic is designed according to the following rule:

Rule (1). Scheduling all the operations of a job before moving to the next one.

In the sequel, when using JpH, it means that it concerns Rule (1).

• Using the following rule defines another way to schedule the operations according to the initial job sequence: Rule (2). For j = 1 to max 1≤i≤n n i , j th operations in the routings of the jobs are ordered in respect to sequence s.

We refer to the job priority heuristic using Rule (2) as JpH-R2

Construction methods

Operation priority Heuristic 1 (OpH1)

It is quite similar to the JpH heuristic. The difference is that the priority is set for operations instead of jobs. It allows to explore solution configurations that cannot be obtained by JpH.

Experiment results show that it is relevant for C max but not for ∑ i C i as the results are better by JpH.

The construction of a schedule is made one operation after the other. To construct a feasible schedule, the heuristic operates according to the following main steps (see Algorithm 5): Use an initial priority sequence s for operations (O 1 , .., O no ), where no = ∑ n i=1 n i is the total number of operations. The operations are successively inserted as early as possible with the OIp procedure and the intervals updated after each insertion.

Note that, as for JpH, the performance of the heuristic strongly depends on the operation priority order in the initial sequence. Better results can be obtained by combining with another method.

Algorithm 5 Algorithm of Operation priority Heuristic 1 (OpH1) Begin

Find an initial operation priority sequence s for each operation O in the sequence s Use the procedure OIp to insert operation O on its machine end for end

In the operation sequence, operations that belong to the same job are denoted by the same symbol which is the job number. To know the position of an operation in a job, we check its occurrence in the sequence. Each job J i appears exactly ni times. This sequence coding is proposed by Gen et al. [START_REF] Gen | Solving job-shop problem using genetic algorithm[END_REF]. for solving the job-shop problem using genetic algorithm. It is also used by Zribi [START_REF] Zribi | Ordonnancement des job-shops flexibles sous contraintes de disponibilité des machines[END_REF] in a genetic algorithm for the flexible job shop problem.

Operation priority Heuristic 2 (OpH2)

As for OpH1, the priority is set on operations instead of jobs. The difference between OpH1 and OpH2 consists in using a rule for selecting an operation; and not an ordered sequence of operations defined a priori.

The heuristic we propose was inspired by the one presented in Esquirol and Lopez [START_REF] Esquirol | Lordonnancement. Economica[END_REF] for the classical job shop problem (non preemptive operations and continuously available machines).

In Esquirol and Lopez [START_REF] Esquirol | Lordonnancement. Economica[END_REF], the heuristic is as follows:

The construction of a schedule is made one operation after the other. To construct a feasible schedule, the heuristic operates with the following steps until all operations are scheduled:

A list O of ready to schedule operations is established (an operation is ready to schedule if the immediate previous operation in the job routing is completed). At the beginning, the list is composed of the first operations of all jobs.

To select an operation from that list, one of the well-known following rules is chosen: a Select the operation which earliest starting date is the smallest: min Oij ∈O Et ij b Select the operation whose earliest completion date is the smallest:

min Oij ∈O EC ij .
The rule (a) generates non-delay schedules; i.e. are schedules in which a machine does not remain idle if an operation is waiting to be processed on it. However, there is no guarantee that the set of non-delay schedules contains the optimal solution (Esquirol and Lopez [START_REF] Esquirol | Lordonnancement. Economica[END_REF]). This is not the case for the active schedules constructed by rule (b); that are schedules such as it is impossible to move an operation without delaying the start time of another operation.

The earliest starting date Et ij is given by the maximum between the completion date C i(j-1) of the predecessor of O ij in the job routing and the end of the last operation on the machine that must process O ij that we denote by ready r for ready date of the machine r = mr ij . Then Et ij = max{C i(j-1) , ready r }.

The earliest completion date EC ij corresponds to the earliest starting date Et ij plus the processing time p ij (EC ij = Et ij + p ij ). On the machine on which the operation is to be processed, the set of ready to schedule operations

O * t is composed of operations O ij * such that Et ij * < min Oij ∈O EC ij .
Hence, from that list, the operation which satisfies the chosen rule is selected. If there are more than one operation, to select one of them, the priority rule MWKR (Most WorK Remaining) is used. This rule gives the priority to the operation of the job for which the remaining work to process is the biggest. The aim is to balance the processing of the jobs corresponding to those operations. So, for each operation, the total processing time of the remaining operations of the corresponding job, including of course the operation, is calculated. Then, the resulting processing times are compared; and the operation corresponding to the maximum value is selected.

Note that, at each iteration, the list of ready to schedule operations is almost the same as the previous. Only one operation changes. It is replaced by the successor operation in the job routing. In addition, the values of the parameter of the chosen rule remain the same except for operations which are to be processed on the same machine than the selected operation.

Construction methods

As we are dealing with a problem with non continuously available machines, flexible starting dates of unavailability periods and preemption between operations and unavailability periods, the earliest starting date of an operation may not satisfy Et ij = max{C i(j-1) , ready r } because of the presence of unavailability periods on the machine. Indeed, the machine is available by intervals and the interval corresponding to time max{C i(j-1) , ready r } may not be sufficiently large to contain operation O ij . Moreover, EC ij = Et ij + p ij is not systematically satisfied. This is due to the fact that, in case of unavailability on the machine, the completion date may also include the duration of an unavailability period and a penalty on preemption; that is

EC ij = Et ij + p ′ rk + p ij + α ij (S rk -Et ij )
where p ′ rk is the duration of unavailability period h rk that interrupts O ij and α ij the preemption penalty of O ij (refer to Case C).

Let us denote by aEt ij : the starting date of the first availability interval on the machine after the completion time C i(j-1) of the previous operation of job J i . Note that Et ij and EC ij are determined by the simulation of the processing of OIp procedure; where Et ij and EC ij replace t ij and C ij , the operation is not inserted and the availability intervals and unavailability periods are not updated.

The rules that we use to select an operation from the list of ready to schedule operations are:

Rule (1). Select the operation whose starting date is the smallest: min Oij ∈O Et ij .

Rule (2). Select the operation whose completion date is the smallest: min

Oij ∈O EC ij .
Rule (3). Select the operation for which the corresponding idle time on the machine is the smallest and is larger than or equal to 0: min Oij ∈O idle ij .

Rule (4). the operation which the corresponding beginning idle time on the machine is the smallest and is larger than or equal to 0: min Oij ∈O idle1 ij . If this condition is satisfied by more than one operation, rule (3) is used.

Rule (5). Select the operation whose starting date of the first availability interval on the machine after the completion of the previous operation in the job routing: min Oij ∈O aEt ij .

Rule (6). Select the operation corresponding to the maximum tail which represents the total processing time of the remaining operations to process on the machine: max

∑ mr i ′ j ′ =mrij p i ′ j ′ .
Rule (1) is the same as Rule (a). The disadvantage of Rule ( 5) is that if the selected operation O ij cannot be inserted in the corresponding availability interval, it may be inserted in an interval that is far from aEt ij date. The aim of Rule (6) is to balance the workload on the machines.

As minimizing the makespan is equivalent to minimizing the total idle time on the machines, Rules (3) and (4) are used. However, for Rule (3), by setting the choice to the smallest positive idle time, Case C will not operate, and the preemption is no longer considered; which is not the case for Rule (4) except when more than one operation satisfy the condition. The idle time idle ij associated to an operation O ij is decomposed into an idle time idle1 ij before the beginning of operation and an idle time idle2 ij at the end of operation. To compare two operations O ij and O i ′ j ′ we use the following condition:

O ij is preferred to O i ′ j ′ if 0 ≤ idle ij ≤ idle i ′ j ′ .
In some cases, it is interesting to consider the condition idle1 ij ≤ idle1 i ′ j ′ to minimize the idle time before the beginning of the inserted operation. This condition is interesting in case where this idle time may be not sufficiently large to contain an operation. However, in case where this idle time is sufficiently large, the condition is not relevant.

To obtain the values of the tail, and the idle times, we simulate the processing of OIp procedure. No updating of the starting and completion dates of operations, the unavailability period and/or the availability intervals is performed.

Once the operation is selected, it is then inserted in the interval using OIp.

The main steps of the heuristic are described in Algorithm 6 Algorithm 6 Algorithm of Operation priority Heuristic 2 (OpH2) Begin Repeat Define the list of operations ready to schedule Select the operation which satisfies the chosen rule If there are more than one operation Apply the MWKR rule end if Insert the selected operation on the associated machine using OIp procedure Remove the operation from the list of operations remaining to schedule Until the list of operations to schedule is empty end

Machine based Heuristics

The principle of the following heuristics is the same as for list algorithms: the priorities are associated to machines. And it is the choice of the machine that defines the set of ready to schedule operations to select. Indeed, at first the ready machine must be defined. It corresponds to the machine which is ready earlier. The selection of this machine is done according to:

Construction methods

1. For each machine that has ready to schedule operations to process on it, define the ready date. It corresponds to the first availability date on the machine.

2. The ready machine corresponds to the one whose ready date is the smallest.

In absence of unavailability periods, the ready date of the machine is defined by the last operation processed on it. However, when there are unavailability periods, the machine can have availability intervals that are prior to the last operation processed on it. In addition, considering the first availability interval as the ready machine, can lead to a very small interval that cannot contain any operation. Hence this machine can be selected several times, the operation is then inserted very far from that interval before moving to another machine. In the heuristics, we use the ready date as the completion date of the last operation processed on the machine.

Machine-Operation priority Heuristic 1 (MOpH1)

For this heuristic their are two priorities: machine and operation. The first priority is given to machines. The operations are inserted one by one. Each time, before the selection of any operation, the ready machine must first be defined.

As described in Algorithm 7, given an initial operation sequence, the heuristic operates as follows: the ready machine is first defined then, from the set of the ready to schedule operation to process on that machine, select the first one in the sequence of operation priorities. The selected operation will be inserted in the appropriate availability interval defined by OIp procedure; and the first availability of the machine will be updated.

Algorithm 7 Algorithm of Machine-Operation priority Heuristic 1 (MOpH1) Begin

Define an initial operation priority sequence s while operations remain to schedule Define the ready machine Select the most prior operation O ready to schedule to process on the ready machine Use the procedure OIp to insert operation O on its machine Update the availability date of the machine with the completion date of the scheduled operation Remove the operation from the list of operations remaining to schedule end while end

Machine-Operation priority Heuristic 2 (MOpH2)

This method is a combination of OpH2 and MOpH1. As for MOpH1, the ready machine must be defined at the beginning of each iteration. Then, as for OpH2, the operation corresponding to the chosen rule (from (1) to (6)), is selected from the set of the ready to schedule operations to process on the ready machine. Algorithm 8 summarizes the main steps of the method.

Algorithm 8 Algorithm of Machine-Operation priority Heuristic 2 (MOpH2) Begin Repeat Define the ready machine Define the list of operations ready to schedule on this machine Select the operation which satisfies the chosen rule If there are more than one operation Apply the MWKR rule end if Insert the selected operation on the associated machine Update the availability date of the machine with the completion date of the scheduled operation Remove the operation from the list of operations remaining to schedule Until the list of operation to schedule is empty end

Implementation and experimentation

The tests are performed on a set of benchmarks that are composed by the five instances of (number of machines x number of jobs) groups (5,5), (5, 10), (10, 10), (10, 15) used in Chapter 4.

Concerning the JpH, OpH1 and MOpH1 heuristics, as their performances depend strongly on the priorities defined by the sequences, they are performed several times Although, the heuristics can be performed with no limit on the number of iterations, we choose to present the results for number of iterations equal to 100, 1000, 10000, 100000. Therefore, the higher is the number of iterations, the higher is the computation time. Then the limit on the number of iteration can be defined by the limit time allowed to the mixed integer programming problems (MIP) resolution.

Starting from the sequence representing an order of the jobs from 1 to n, we observed that the more randomness is introduced in the generation process of the sequences, the best are the results. The sequences are generated such as a fixed number of permutations are operated to the previous ones.

Construction methods

For OpH2 and MOpH2, as the order of the operations is defined by rules, the sequence is the same from an iteration to another, we need then to run the experiments only once. The performances of the heuristics are studied over the six rules introduced in the theoretical part.

The heuristics are compared to the optimal solutions or lower bounds provided by the mathematical modeling.

Definition of Tables structure

As the same structure is used for some tables in Sections 5.1.5.2 and 5.1.5.3, we prefer to define all the tables in this section.

Tables 5.1 and 5.12 give respectively the ranking of the priority rules for OpH2 and MOpH2 heuristics by objective criteria C max and ∑ C i , and fixed or flexible unavailability periods whatever is the operations character (non-preemptive, resumable, non-resumable, semi-resumable). This ranking is defined according the number of the best and worst solutions the rules determine overall the instances. Column 1 represents the rank. Columns 2 and 3 (resp. 4 and 5) represent the ranks for C max (resp. ∑ C i ). Columns 2 and 4 concern fixed unavailability periods; whereas Columns 3 and 5 concern flexible unavailability periods. This ranking is established thanks to Tables from A.7 to A.14 of Appendix. Tables 5.4, 5.6, 5.8, 5.13 and 5.15 (resp.5.5, 5.7, 5.9, 5.14 and 5.16) summarize the test results for fixed (resp. flexible) unavailability periods with respectively JpH, OpH1, OpH2, MOpH1, MOpH2 heuristics. For JpH, OpH1 and MOpH1, the results concern the case of 1000 iterations. For OpH2 and MOpH2, the results gather the best values of the objective criteria through all the rules. Table 5.2 (resp. 5.3) represents the test results form Integer resolution of the disjunctive model with fixed (resp. flexible) unavailability periods. Column 1 is the name of the instance; Columns 2-3, 4-5, 6-7, 8-9 represent respectively the test results of the heuristic for non-preemptive, resumable, non-resumable and semi-resumable operations. Columns 2, 4, 6, 8 correspond to the makespan value of the solution and Columns 3, 5, 7, 9 correspond to the value of the sum of the completion dates of the jobs of the solution. For all these tables, except those associated to MIP resolution, indications on the gap between the best solution of the heuristics and the disjunctive MIP solution are given. Table 5.11 gives the test results for resumable operations and flexible unavailability periods for orders ABC and CAB in OIp procedure with OpH2 heuristic and through all the rules. Column 1 represent the name of the instance. Columns from 2 to 5 represent the test results for OpH2 heuristics with different orders of cases A, B and C in OIp procedure, Columns 2 and 3 for ABC order and Columns 4 and 5 for CAB order. The results represent the best solutions through all the rules. Columns 6 and 7 represent the test results for the disjunctive MIP model. Columns 2, 4, 6 give the results for C max and Columns 3, 5, 7 give the results for ∑ C i . Except for the results associated to MIP resolution, indications on the gap between the best solution of the heuristic and the disjunctive MIP solution are given. Tables 5.17 and 5.18 gather the test results for respectively non-preemptive operations and fixed unavailability periods, and resumable operation and flexible unavailability periods for all the heuristics to compare them. Hence, Column 1 is the name of the instance; Columns 2-3, 4-5, 6-7, 8-9, 10-11 represent respectively the test results of JpH, OpH1, OpH2, MOpH1, MOpH2; and Columns 12-13 give the test results for the integer resolution of the disjunctive MIP model. Columns 2, 4, 6, 8, 10, 12 correspond to the makespan value of the solution; and Columns 3, 5, 7, 9, 11, 13 correspond to the value of the sum of the completion dates of the jobs of the solution. We highlight, for each objective criteria, the best and the worst results; and for the best results, we show the gap compared to the solution of the disjunctive MIP resolution. Table 5.20 presents the test results of the comparison between JpH and JpH-R2 in case of 100000 iterations. Column 1 is the name of the instance; Columns from 2 to 7 (resp. from 8 to 13) represent the results in case of non-preemptive (resp. resumable) operations and fixed (resp. flexible) unavailability periods. Columns 2-3, 8-9 concern JpH. Columns 4-5, 10-11 concern JpH-R2. Columns 6-7, 12-13 concern disjunctive MIP. Columns 2, 4, 6, 8, 10, 12 correspond to the makespan value of the solution; and Columns 3, 5, 7, 9, 11, 13 correspond to the value of the sum of the completion dates of the jobs of the solution. For each objective criteria, we highlight the best results. Table 5.21 presents the test results comparing JpH-R2 and the best results over all the heuristics (including JpH). Column 1 is the name of the instance; Columns from 2 to 7 (resp. from 8 to 13) represent the results in case of non-preemptive (resp. resumable) operations and fixed (resp. flexible) unavailability periods. Columns 2-3, 8-9 represent the best results over all the heuristics (including JpH). Columns 4-5, 10-11 represent the results for JpH-R2. Columns 6-7, 12-13 represent the results for disjunctive MIP. Columns 2, 4, 6, 8, 10, 12 correspond to the makespan value of the solution; and Columns 3, 5, 7, 9, 11, 13 correspond to the value of the sum of the completion dates of the jobs of the solution. For each objective criteria, we highlight the best results.

Note that, although the heuristics integrates all the availability models, we present sometimes the test results only for the less flexible (non-preemptive operations and fixed unavailability periods) and the most flexible (resumable operations and flexible unavailability periods) cases.

Job based heuristics

Test results (See Tables from A.1 to A.4 of Appendix) show that, for heuristics JpH and OpH1, the higher is the number of iterations the best are the solutions. Indeed, the results are generally improved through number of iterations of 100, 1000, 10000 and 100000; and the best results are obtained for 100000 iterations. However, for instances of class (5,5), the results are stable and can be optimal; and for the case of fixed unavailability periods, most of them are

Construction methods

optimal. In addition, for few benchmarks, the best solution is obtained for number of iterations lower than 100000.

The best results for the heuristics are either equal to those of the disjunctive MIP model or the gap between these values and those of the MIP model is less or equal to 10%. There are also few benchmarks for which the objective function values are better than those of the MIP model. Of course the remaining values of the heuristics are worse than the ones of the MIP model.

Concerning criterion C max , the best results are, in general, given by OpH1 heuristic. Whereas, for criterion ∑ C i , the best results are obtained by JpH heuristic.

Test results (see Tables A. 5 and A.6 of Appendix) show that the higher is the number of iterations, the higher is the CPU time. Moreover, the CPU time of each level is approximatively equal to the CPU time of the lower level multiplied by 10; note that the number of iterations of the level is equal to the number of iterations of the lower level multiplied by 10. The case of resumable operations and flexible unavailability periods induces a higher CPU time than the case of non-preemptive operations and fixed unavailability periods. Moreover, the CPU time that is required to solve the instances by JpH heuristic is slightly lower that the CPU time for OpH1 heuristic. Except for instances (5,5) for number of iterations of 10000 or 100000, the CPU times associated to JpH and OpH1 are better than those of MIP model.

For each rule, the CPU time for constructing a schedule and calculating C max and ∑ C i values are ≤ 0.02 seconds. Rules ranking is established relatively to the amounts of best and worst solutions obtained by each heuristic over non-preemptive, resumable, non-resumable and semi-resumable problems in case of fixed or flexible unavailability periods for C max and ∑ C i . An aggregation of the ranks between non-preemptive, resumable, non-resumable and semi-resumable allows to establish the global rank by fixe and flexible characters of unavailability periods.

Table 5.1 shows that the best rule for C max is Rule (1); whereas the best one for ∑ C i is Rule (2); almost best solutions are obtained thanks to these rules. The worst rule for C max is Rule (2) or (3) (resp. (2) or (4)) depending on the operations preemptive character and fixed (resp. flexible) unavailability periods; whereas the worst one for ∑ C i is Rule (5) (resp. (3)) for fixed (resp. flexible) unavailability periods. Recall that Rules (3) and (4) deal with idle times; we observe that considering the minimum idle time before the beginning of operations eligible to insertion allows to find better results than when the total idle time is considered for each operation. The reasons may be that trying to insert the operation as early as possible in the insertion interval may create an idle time after the completion of the operation sufficiently large to insert another operation. Tables 5.2, 5.4, 5.6 and 5.8 show that dominance between non-preemptive, resumable, nonresumable and semi-resumable problems in case of fixed unavailability periods are conserved by JpH, OpH1 and OpH2 for the two objective criteria C max and ∑ C i . The results for the resumable case are better than those for non-preemptive case. The results for the non-preemptive and non-resumable cases are close. The results for the semi-resumable case are bad comparing to those for the resumable case and better than those of the non-preemptive and non-resumable cases. OpH1 has better dominance than JpH. OpH1 provide better results for C max and JpH provide better results for ∑ C i . Although, better solutions are found with higher number of iterations, we choose to present the results for 1000 iterations. Although almost values of each objective criterion are similar for non-preemptive, resumable, non-resumable and semi-resumable problems in case of flexible unavailability periods, we present all the cases in Tables 5.3, 5.5, 5.7 and 5.9 to show the gap between these values and the MIP solutions. The redundancy of values can be explained by the fact that the order of Cases A, B, C used in OIp procedure favors the flexibility of unavailability periods not preemption; recall that, unlike MIP model, procedure OIp does not deal with flexibility and preemption at the same time. For this reason, less optimal solutions are found by the heuristics comparing to the case of non-preemptive operations and fixed unavailability periods.

Construction methods

From test results (see Table 5.10 Tables A.12, A.15, A.16 of Appendix), we deduce that, except for some instances, the best results are obtained when the unavailability periods are placed at the beginning of their time windows. In general, the best values through all the rules when the unavailability periods are still placed in their initial position are the same as those of the case of the unavailability periods placed at the end of their time windows. Note that Table 5.10 gathers the best values through all the rules of the three other tables. When the unavailability periods are placed at the beginning (resp. end) of their time windows, the unavailability periods cannot start earlier (resp. later) so Case A.1 (resp. Cases A.2 and B) of OIp procedure is (resp. are) not valid.

Table 5.11 (see also Tables A.12 and A.17 of Appendix) show that using order A,B,C in OIp procedure provides better results than order C,A,B. The first order sets the priority to flexibility; whereas preemption is preferred in the second one although no penalty is induced as we consider the resumable problem.

Construction methods

Machine based heuristics

Test results (See Tables from A.18 and A.19 of Appendix) show that, for heuristic MOpH1 as for JpH and OpH1, the higher is the number of iterations the best are the solutions. Indeed, the results are generally improved through number of iterations.

Tests results (see Table A.20 of Appendix) shows, as for JpH and OpH1, that the higher is the number of iterations, the higher is the CPU time. Moreover, the CPU time of each level is approximatively equal to the CPU time of the lower level multiplied by 10; note that the number of iterations of the level is equal to the number of iterations of the lower level multiplied by 10. The case of resumable operations and flexible unavailability periods induces a higher CPU time than the case of non-preemptive operations and fixed unavailability periods for instances of classes (5,5) and (5,10); it is the opposite for higher size of instances. Moreover, the CPU time that is required to solve the instances by MOpH1 heuristic is widely higher than the CPU time for OpH1 heuristic. As for OpH2, for each rule, the CPU time for constructing a schedule and calculating C max and ∑ C i values are ≤ 0.02 seconds.

Table 5.12 shows that, as for OpH2, the best rule for C max is Rule (1); whereas the best one for ∑ C i is Rule (2); these rules allow to obtain almost the best solutions. The worst rule for C max is Rule (2) or (4) (resp. (2)) depending on the operations preemptive character and fixed (resp. flexible) unavailability periods; whereas the worst one for ∑ C i is Rule (6). As for OpH2, the same conclusions are observed for Rules (3) and (4).

In general the same conclusions, as for job based heuristics, are observed for MOpH1 and MOpH2 concerning the dominance between the non-preemptive, resumable, non-resumable and semi-resumable problems (see Tables 5.13, 5.14, 5.15, and 5.16).

Construction methods

Comparison between all the heuristics

Tables 5.17 and 5.18 gather the test results for respectively non-preemptive operations and fixed unavailability periods, and resumable operation and flexible unavailability periods for all the heuristics. The results for JpH, OpH1 and MOpH1 are associated to the best ones through the different numbers if iterations 100, 1000, 10000 and 100000. For OpH2 and MOpH2, the results are associated to the best ones through all the rules from 1 to 6.

Construction methods

Table 5.17: Comparing the heuristics in case of non-preemptive operations and fixed unavailability periods.

Construction methods

From 5.20, we deduce that the value of C max are improved by JpH-R2 heuristic for many instances specially the big ones comparatively to JpH heuristic and almost values of the two heuristics are close. However, the results of JpH-R2 for ∑ C i are worst.

Genetic Algorithm

We have previously underlined that heuristics JpH, OpH1 and MOpH1 depend strongly on an initial sequence. The test results show that higher randomness in the sequence, better are the solutions. The high number of runs (iterations) of these methods show that it is interesting to consider un wide solution space. All these motivates the design of an improving method such as the genetic algorithm. This method is interesting because it works with a population of sequences.

This approach is similar to the one developed by Aggoune [START_REF] Aggoune | Ordonnancement d'ateliers sous contraintes de disponibilités des machines[END_REF]. However, in addition to the introduction to the flexibility on the starting date of the unavailability periods, another chromosome coding than the job priority sequence is also used: the operation priority sequence.

The makespan evaluation is made by JpH (resp. OpH1 or MopH1 ) for the job priority sequence (resp. operation sequence).

Algorithm 10 describes the main steps of the genetic algorithm.

Algorithm 10 The genetic algorithm

Begin

Define a coding and generate an initial population Evaluate each individual of the population while a stopping condition is not satisfied Select individuals for recombining Apply variation operators (crossover, mutation) on the selected individuals Evaluate the performance of the new individuals Replace individuals to get the new population end while end

Conclusion

As approximation methods are appropriate alternative for exact methods for solving N P -hard combinatorial optimization problems, we have presented in this Chapter heuristics to tackle the job shop scheduling problem with resource availability constraints. Introducing flexibility on starting dates of unavailability periods and operations preemption was studied.

Construction heuristics we developed construct a schedule based on various decision strategies. The choice of these strategies are related to how operations and/or machines are prioritized, and how conflicts between operations and machine unavailability periods are managed. Difficulties are how to select an operation to be inserted on the corresponding machine, how to

Conclusion

select the availability period on the machine that can contain the operation, and how to deal with operations preemption and unavailability periods flexibility.

Two kinds of methods are suggested: job based and machine based heuristics. Three job based heuristics that prioritize the job operations were developed. In the first two heuristics, Job priority Heuristic (JpH) and Operation priority Heuristic 1 (OpH1), selection is based on the ordering of the jobs and the operations respectively. In the third heuristic OpH2, the operation to be inserted is selected according to a given rule. Two machine based heuristics were also proposed.

Finally, we have discussed the way these construction heuristics, that are building blocks, are used in improving methods to obtain better results for the studied problem. JpH, OpH1 and MOpH1 can be used as evaluating blocks in methods that use many solutions at the same time to provide better ones as it is the case for genetic algorithms. OpH1 and MOpH1 can be re-used in a method that reoptimizes the sub-sequence formed by the previous operations in the initial sequence, each time an operation is selected and inserted.

Chapter 6

Column Generation Approach

In this chapter, we propose a column generation approach to solve the classical job shop scheduling problems with fixed and flexible resource availability constraints. Various objective functions are used. A new integer programming formulation is proposed, where variables are associated to the selection of a schedule for a given job or of a schedule for a given resource unavailability period. Because the number of variables is huge, a column generation approach is developed to only select relevant schedules until convergence is obtained.

The chapter is organized as follows: In Section 6.1, we present the main idea of the column generation approach and discuss interests in using large-scale mixed integer programming problems and column generation models. Section 6.2 presents a column generation approach for the non-preemptive job shop problem without and with fixed resource availability periods; that is extended to consider preemptive problems. This approach is adapted in Section 6.3 to take into account flexible unavailability periods; obviously this approach solves as a special case the problem with fixed unavailability periods.

Why Column Generation?

In Barnhart et al. [START_REF] Barnhart | Branch-and-Price: Column Generation for Solving Huge Integer Programs[END_REF], it is mentioned that the successful resolution of large-scale mixed integer programming problems (MIP) requires formulations whose linear programming (LP) relaxations give a good approximation of the convex hull of feasible solutions. It is also mentioned that, in column generation, sets of columns are left out of the LP relaxation because there are too many columns to handle efficiently and most of them will have their associated variables equal to zero in an optimal solution anyway.

Hence, the column generation approach is based on an (MIP) formulation inducing a huge number of variables; and is performed with the linear relaxation program of the MIP. Starting from an initial set of columns that corresponds to a feasible solution to the problem, columns are iteratively added to the reduced problem thanks to a pricing problem that constructs feasible schedules corresponding to improving columns. The reduced problem is reoptimized at each iteration. The process is stopped when no column is added. If the solution to the reduced problem is integer, it is also the solution to the MIP; otherwise, the integrality property of the variables is introduced to the reduced problem that is then solved by a branch-and-bound procedure or a branch-and-price procedure.

In Lancia et al. [LRS07], a compact formulation of a model with an exponential number of constraints is defined as an equivalent formulation in which the exponentially many constraints are replaced by a polynomial number of new constraints (after introducing an exponential number of new variables).

In Barnhart et al. [BJNSV98], several reasons for considering formulations with a huge number of variables are listed:

• When a compact formulation of a MIP may have a weak LP relaxation, the relaxation can be tightened by a reformulation that involves a huge number of variables,

• A formulation with a huge number of variables can eliminate the symmetry that can exist in the structure of a compact formulation of a MIP. This symmetry causes a poor performance of branch-and-bound,

• Column generation provides a decomposition of the problem into a master problem and a pricing problem. This decomposition may have a natural interpretation in the contextual setting allowing for the incorporation of additional important and complex constraints,

• A formulation with a huge number of variables may be the only choice.

Section 6.2 develops the column generation approach for the non-preemptive job shop problem with fixed availability periods of machines, and an extension of the approach to the preemptive problem is presented. Section 6.3 studies the problem in case of flexible availability periods.

Non-preemptive job shop problem with fixed resource availability periods

A similar approach was proposed by Lancia et al. [LRS07] to solve the classical job shop problem. As the time required to reach optimality of the related model by column generation can be very large, they proposed a compact formulation. No indications are given on how the column generation approach is developed and implemented and what are the difficulties and properties.

Our approach is based on the integer programming formulation presented in Section 6.2.1. Section 6.2.2 describes the column generation approach; and the main steps are given in Section 6.2.3. The implementation and test results are discussed in Section 6.2.4. Finally, an extension of the approach to the preemptive problem is presented in Section 6.2.5.

An integer programming formulation

We want to develop a formulation of the problem that will allow us to use column generation. We denote by T the schedule length. A solution of the problem can be described by the n schedules of the jobs on the machines. S(J i ) is the set of sequences of job J i . It represents the (exponential) number of all the possible feasible schedules of J i .

Illustration example of schedule sets

For illustration, let us consider the example of the problem given in Figure 6.1. The production system is composed of two machines M 1 and M 2 to process two jobs J 1 and J 2 . The job routing of J 1 is M 1 (3) M 2 (2) and the one of J 2 is M 2 (1) M 1 (2). The schedule length we choose is T = 8 and we decompose the time in 8 periods.

As we assume that there no unavailability period on the machines, a feasible schedule of a job is a schedule that respects the job routing. Hence, sets of schedules S(J 1 ) and S(J 2 ) associated respectively to jobs J 1 and J 2 are composed respectively of 10 and 21 schedules that are feasible for their associated jobs. Each of these schedules is represented by a sequence of 1 and 0. Bit 1 means that the job is being processed at the associated period. If it is not the case, bit 0 is associated. Moreover, a number is assigned to each schedule; the 10 first schedules concern job J 1 whereas numbers from 11 to 31 are assigned to schedules of J 2 . Let us consider schedule number 7, operation O 11 starts at period 2 and finishes at period 4; and operation O 12 starts and finishes respectively at periods 7 and 8. S is the set of all feasible schedules (S = S(J 1 ) ∪ S(J 1 )).

To determine a feasible solution to the problem, it is necessary to find a schedule from S(J 1 ) and a schedule from S(J 2 ), that are also feasible for the global problem as in addition to the respect of the job routings, they must also satisfy the resource constraints (non overlapping of two operations on the same machine). For instance, schedule 7 of J 1 and schedule 14 of J 2 are feasible for the global problem; that is not the case of schedules 7 and 17 as operations O 21 and O 22 overlap on machine M 1 during periods 3 and 4.

Note that the higher is the schedule length, the higher is the number of schedules for each job and inversely. For instance if we set T = 6, only schedules 1, 2, 5 remain feasible for J 1 and only schedules 11, 12, 13, 14, 17, 18, 19, 22, 23, 26 are still valid for J 2 .

Notations

In order to introduce our formulation, we need the following parameters:

n: number of jobs, m: number of machines, S: the set of all schedules (S = ∪ n i=1 S(J i )), J i (s): the job associated to a given schedule s, i.e. s ∈ S(J i ); for instance, in Figure 6.1, the schedule s = 7 is associated to job J 1 and schedule s = 18 to J 2 , a s tj = 1 if the j th operation of job J i (s) is processed at period t on its associated machine

Remark

Although this formulation models the job shop with continuously available machines, it also models the problem with machine availability constraints. In addition to the properties that should satisfy any schedule in S without machine unavailability period, the operations should be sequenced such that no operation overlaps an unavailability period on its associated machine. Obviously the set of schedules when unavailability periods is included in the set of schedules without unavailability periods (See Figures 6.1 and 6.2). As mentioned before for 6.2 Non-preemptive job shop problem with fixed resource availability periods the example of Figure 6.1, in case of machines that are continuously available, the feasibility of a schedule associated to a job is conditioned by the its respect to the job routing; however in case of unavailability periods on the machines , refer to Figure 6.2, an additional condition is the processing of operations only during availability periods of the machines. For example, if we introduce an unavailability period on machine M 1 at periods 4 and 5, only schedules 1, 2, 3 and 4 remain feasible for J 1 and only schedules 11, 15, 16, 20, 21, 24, 25, 27, 28, 29, 30, 31 for J 2 . And if we introduce also an unavailability period on machine M 2 at periods 4, schedules 3, 4 are no more feasible for J 1 .

The model

The following variables are used in the model:

x s = 1 if the s th feasible schedule is used for job J i (s) and 0 otherwise.

The integer programming formulation, called (MP), is:

f * = min f = ∑ s∈S C s x s (6.1) ∑ s∈S(Ji) x s = 1 i = 1, ..,
∑ s E s x s ( ∑ i w Ji(s) E s x s ),... Where T s = max(C s - d Ji(s) , 0) and E s = max(d Ji(s) -C s , 0)
. It can actually be non linear. As the criterion C max depends on all the jobs, the column generation approach cannot be applied.

A column generation approach

Designing a column generation approach depends on the development of the following elements: the relaxation of the integer programming formulation seen in the previous section (Section 6.2.2.1), the dual problem associated to this relaxation (Section 6.2.2.2), the pricing problem defining the form of an improving column (Section 6.2.2.3) to add to the relaxed problem and the dynamic programming procedure to find the columns to add (Section 6.2.2.4).

Master Problem

Our initial goal is to solve the linear relaxation of (MP) i.e. x s ∈ [0, 1], ∀s ∈ S. We suppose that the model is first solved for an initial set of schedules to which columns will be added. This is called Reduced Master Problem (RMP).

When applying column generation, it is preferable (see Barnhart et al. [BJNSV98]) to use a covering formulation than a partitioning formulation. Hence, in the sequel, we replace the equality sign (=) in Constraint [6.2] by larger than or equal to (≥).

Dual Problem

Dual variables are obtained for every constraint of the Master Problem, denoted by γ i for the n constraints [6.2] and δ tr for the T × m constraints [6.3].

Non-preemptive job shop problem with fixed resource availability periods

The dual of the linear relaxation of (MP) problem can be written:

d * = max d = n ∑ i=1 γ j - T ∑ t=1 m ∑ r=1 δ tr (6.5) γ Ji(s) - T ∑ t=1 n J i (s) ∑ j=1 a s tj δ tmrij ≤ C s ∀s ∈ S (6.6) γ i ≥ 0 i = 1, .., n (6.7)
δ tr ≥ 0 t = 1, .., T ; r = 1, .., m (6.8)

The dual variable γ i represents the feasibility of job J i , and δ tr corresponds to the state of resource r at period t.

Pricing Problem

Adding a column (i.e. a feasible schedule) to the relaxed primal problem corresponds to adding a constraint [6.6] to the dual. Decreasing the objective value of the primal will lead to a decrease of the objective value of the dual problem. This can only be done if the new constraint [6.6] is not satisfied for the optimal values γ * i and δ * tr of the dual variables. Hence, we are searching for a schedule s such that:

γ * Ji(s) - T ∑ t=1 n J i (s) ∑ j=1 a s tj δ * tmrij > C s (6.9)
The reasoning leading to [6.9] is based on the dual variables corresponding to all processing periods of the operations of job J i .

The search needs to be done for every job J i since the constraint differs from one job to another.

Let us denote by c s tj the boolean parameter which is equal to 1 if operation O ij (1 ≤ j ≤ n i ) of job J i ends at period t. Consider from now that C s corresponds to the completion time of job J i in the schedule, i.e. the end of the last operation of job J i (s): C s = ∑ T t=1 tc s t.n J i (s) . Constraint [6.9] can be rewritten

γ * Ji(s) - T ∑ t=1 n J i (s) ∑ j=1 c s tj ( t ∑ l=t-pij +1 δ * lmrij ) > T ∑ t=1 tc s tn J i (s) (6.10)
The reasoning leading to [6.10] is based on the dual variables corresponding to processing period referring to the completion date of each operation of job J i .

If operation o of job J i ends at period t in a schedule s, then the contribution of the operation at period t is

w tj = t ∑ l=t-pij +1 δ * lmrij , if j < n i w tj = t + t ∑ l=t-pij +1 δ * lmrij , if j = n i
Using the previous notation, [6.10] is equivalent to

T ∑ t=1 n J i (s) ∑ j=1 c s tj w tj < γ * Ji(s) (6.11)
For every job J i , we are searching for a schedule s verifying [6.11]. Indeed, if there is no such schedule, then no column needs to be added.

Remarks

The contributions of the job operations are not only useful to construct a feasible schedule, but also to define the improving columns to add to (RMP). Obviously, there are some periods at which operation O ij cannot finish. These periods must be discarded by setting to ∞ the associated contributions. This can be done to satisfy the job routing (this suggests the definition of a lower bound and an upper bound; that are unfortunately not tight since we deal with the job-shop scheduling problem); and to ensure non overlapping between an operation and an unavailability period.

This defines a pretreatment phase. Note that even if this phase is not performed, the discarded periods will be skipped when constructing the schedule by the dynamic programming algorithm.

1. Job routing constraints 1.a. Operation O ij cannot be completed before the completion of the previous operation in the job routing and its processing time. Hence, a lower bound for the completion period of O ij is given by

B l = ∑ j j ′ =1 p ij ′ . It is
w tj = +∞, ∀t = T rk + 1, .., T rk + p ij -1

Adding new columns: Dynamic Programming

For every job J i , we are searching for a schedule s verifying [6.11]. We would like to find a sequence for which the sum of the contributions of all the job operations ∑ ni j=1 w tj j is minimal, where t j is the completion period of O ij and t j-1 < t j -p ij + 1. And we will add this schedule to the formulation if this sum is strictly smaller than γ * Ji(s) . indeed, if there is no such schedule, then no new column needs to be added.

For this, we denote by W tj the contribution of the first j operations of job J i : W tj = ∑ j j ′ =1 w t j ′ j ′ This leads to use the following recurrence formula for Dynamic Programming:

W tj = w tj + min b l ≤l<t-pij +1 W l(j-1) (6.12)
where b l = ∑ j-1 j ′ =1 p ij ′ Note that:

• W t1 = w t1 • if w tj = +∞ then W tj = +∞
The contributions are stored in a table W of T rows and n i columns. Hence to calculate W tj , all elements of the table between rows 1 and t -1 and columns 1 and (j -1) must be considered.

It can also be represented by a graph G DP = (N DP , A DP ) where:

• N DP is the set of nodes. A node t j models operation j and its completion period t. The node weight is w tj .

• A DP is the set of arcs. There exists an arc only between two successive levels (satisfaction of the job routing). There is an arc between periods t 1 and t 2 (t 2 > t 1 ) if the processing of operation (j -1) ends at period t 1 whereas the processing of operation j ends at period t 2 . The arc weight is W t1(j-1) .

The problem consists in searching the shortest path from level 1 to level n j . The dynamic programming algorithm 11 allows the improving sequences (columns) through the schedule length to be added. Note that, for each period t, only one column is defined and too many columns to (RMP). This heuristic can be an adaptation of the dynamic programming algorithm. However, it can be more relevant to directly use the dynamic programming algorithm.

Implementation and numerical results

In the following, we will refer to the dynamic programming procedure that finds multiple improving columns per job, at each iteration as typecol 1 ; and to the dynamic programming procedure that finds one improving column per job at each iteration as typecol 2 .

To evaluate the performance of the column generation model, we compare its computational results to those of the disjunctive model proposed in Chapter 4. From Tables 6.1, 6.2 and 6.3, we deduce that the disjunctive model is more efficient than the Column Generation one for the integer resolution. Indeed, when the disjunctive model is able to almost solve to optimality the instances up to class (10,10) and to provide feasible solution to bigger instances, the column generation model provides a solution to class (5,5) only. However, for the class (5,5) some of the solutions found by the column generation model are close or equal to those found by the disjunctive model. In addition, the column generation model is more efficient than the disjunctive one when providing a lower bound to the linear relaxation. Indeed, the lower bound of the column generation model is better than the disjunctive model one and is close to the best integer solution found. Tables 6.2 and 6.3 show that the results of the column generation model depend on the value of the schedule length. The larger the schedule length, the lower the lower bound until reaching a stability threshold. Indeed, there is a stability of the value of the lower bound for levels of the schedule length. This can be explained by the fact that, when increasing the value of the schedule length, the set of feasible solutions becomes larger. When the schedule is smaller than the makespan value of the best solutions found for the disjunctive model, the lower bound of the column generation model is larger than these best solutions (see instance 5m5n1).

In general, the column generation considerably improves the values of the objective functions. Starting from the initial solutions, the columns that are added are relevant. However, for the solutions that are improved when performing the column generation process, and whose status at the end of the branch-and-bound procedure is optimal (resp. feasible), we deduce that the added columns are not sufficiently good (resp. sufficiently relevant) to obtain the optimal solution for the global problem. Also, the computational times are small. This can be also useful when performing the column generation procedure at each node of a branch-and-price method. We could expect that, when increasing the schedule length as the problem induces more schedules so more variables (columns) to consider, the computational time will systematically increase. This is not always true and it can be the opposite. This can be explained by the fact that, when performing the column generation process, more relevant columns are added to the model and make the search easier. However, when the search is longer, it means that the process deals with too many columns.

From these test results, we cannot really deduce which of cases typecol 1 and typecol 2 is the best. For the linear relaxation part, typecol 1 is performed in less iterations but more columns are added. Also, for typecol 1 , when the search time is longer, too many columns are added and the search is complicated. When the search time is small, there are too many columns but there exist relevant ones and the search is easy. For typecol 2 , when the search time is longer, the few added columns are not so relevant, the search is then complicated. When the search time is small, the few added columns are relevant and the search is easy. When we compare the best solution over the schedule length provided by cases typecol 1 and typecol 2 for four instances of five; however for given schedules typecol 1 provide better solutions than the ones obtained by typecol 2 .

To investigate the performance of the column generation approach, the benchmarks are modified by dividing by 10 (scale /10) the schedule length and the durations and the dates of operations and unavailability periods. We ensure to get integer values by rounding noninteger values obtained after dividing by 10 to the immediately upper integer value. This implies rounded values of the objective function of some solutions. The names are then of type XmY nZscale, where X, Y , Z and scale are respectively the number of machines, the number of jobs, the number of the benchmarks in the class and the scale. These modifications lead to problems that induces less columns to consider in the column generation approach and less time periods. Table 6.4 is organized as Table 6.1. It gathers the test results of the disjunctive model. Tables 6.5 and 6.6 (resp. 6.7 and 6.8) show the test results for the column generation model when applying typecol 1 (resp. typecol 2 ) adding multiple improving columns (resp. one improving column) per job at each iteration in case of initial benchmarks, one schedule length and different initial solutions. The first table summarizes the results for classes (5,5) and (5,10); whereas the second one presents the results for classes (10,10) and (10,15). Column 1 is the name of the instance; Column 2 is the schedule length; Columns 3 and 4 show the initial solution number and the initial solution. Columns 5 to 8 correspond to the test results of the linear relaxation of the restricted master problem. Columns 9 to 12 correspond to the test results of the branchand-bound procedure. Column 5 shows the lower bound, Column 6 the number of iterations, Column 7 the number of columns, and Column 8 the CPU time (in seconds). Column 9 shows the lower bound, Column 10 the objective function of the best solution, Column 11 the gap (in %), Column 12 the CPU time (in seconds). For typecol 1 (resp. typecol 2 ) and for each instance, 6.2 Non-preemptive job shop problem with fixed resource availability periods four (resp. three) different solutions are tested for the same schedule length. Note that, for typecol 1 , we add a fourth solution that is a combination of the three others as it appears that typecol 1 is more efficient than typecol 2 .

Although the modification of the benchmarks has no influence on the disjunctive model, it highly influences the column generation model. Indeed, the column generation model provides solutions to instances up to class (10,15) for typecol 1 case and up to class (10,10) for typecol 2 . The solutions obtained by typecol 1 are better than those of typecol 2 except for instances 3 and 4 of Class (5,5) for which they are equal and instances of Class (10,10) that are not improved for the two types by the branch-and-bound.

Here also it appears that the quality of the lower bounds of the linear relaxation of the column generation model is excellent. Indeed, their values are close to the optimal solutions. Moreover, these linear relaxations are obtained in short time. The values of the initial solutions are improved through the branch-and-bound procedure for almost all the instances up to (5,10); but for benchmarks of class (10,10) or larger the branch-and-bound is not efficient. However less solutions are improved for typecol 1 than typecol 2 .

For the column generation model and for the same schedule length several initial solutions were tested. We deduce that a lower value of the initial solution does not systematically imply a better solution to the integer resolution. Hence a "good" initial solution does not mean a good solution in terms of the value but in terms of capability to generate relevant columns. Also, we could expect that introducing many feasible schedules generated by heuristics to the initial solution gives a better solution than considering each schedule separately. Unfortunately, it is not always the case. Sometimes it degrades the value of the solution of the branch-and-bound or makes the problem more complicated to solve (even a feasible solution is not provided in one hour) for two instances 3 and 4 of Class (5,10). Table 6.11 is organized as Table 6.1. It summarizes the test results for the disjunctive model for modified benchmarks (scale /20). Tables 6.12 (6.13) shows the test results for column generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /20), one initial solution and one schedule length. They are organized as Table 6.2 except that positions of the initial solution and the schedule length are permuted. Hence, Column 2 shows the initial solution and Column 3 the schedule length.

The main goal for this benchmark modification is to improve the branch-and-bound results of the benchmarks of classes (10,10) and (10,15). However, the reduction of the scale is not significant. This confirms the results obtained for the time-indexed model of Chapter 4.

The results show that the improved solutions (instances of Classes (5,5) and (5,10)) are very good because the gaps between the disjunctive MIP solutions and and the solutions of the column generation branch-and-bound are small.

Extension: The preemptive case

The approach is similar to the non-preemptive case. The differences are in the expressions of w tj , W tj and in the columns to be added.

Indeed, for a given job J i , since the contribution of operation O ij in the reduced cost is defined by the values of the dual variables δ lr associated to the processing periods of the operation, ∑ t l=t-pij +1 δ * lmrij in expression [6.10], w tj will be replaced by ∑ l∈Ptj δ * lmrij , where:

-

P tj = [t -p ij + 1, t] if operation O ij
is not interrupted by an unavailability period.

-

P tj = [S rk -p ij -(t -T rk ), S rk -1] ∪ [T rk + 1, t] if O ij is resumable.
The point [2.b.] of Remarks of Section 6.2.2.3 is no longer true, as it is possible to complete an operation just after the end of the interrupting unavailability period.

Non-preemptive job shop problem with fixed resource availability periods

Numerical results

Table 6.14 summarizes the test results for modified benchmarks (scale /10) with the disjunctive formulation for resumable operations. The first column is the name of the benchmark. Columns 2 to 5 give the results for the mixed integer linear program. Column 2 shows the best lower bound, Column 3 the objective function of the best solution, Column 4 the gap (expressed in %), and Column 5 the CPU time (expressed in seconds).

Table 6.15 shows the test results for the Column Generation model when adding multiple improving columns per job at each iteration, i.e. typecol 1 , in case of initial benchmarks, one initial solution and one schedule length. Column 1 shows the name of the instance, Column 2 the initial solution and Column 3 the schedule length. Columns 4 to 7 correspond to the test results of the linear relaxation of the restricted master problem. Columns 8 to 11 correspond to the test results of the branch-and-bound procedure. Column 4 shows the lower bound, Column 5 the number of iterations, Column 6 the number of columns, and Column 7 the CPU time (in seconds). Column 8 is the lower bound, Column 9 the objective function of the best solution, Column 10 the gap (in %), Column 11 the CPU time (seconds). For each instance, only one schedule length is tested for one initial solution.

The conclusions of the test results are the same as for the non-preemptive case. These conclusions concern the classes of instances solved, the quality of the solutions and the linear relaxations, the CPU time.

Job shop problem with flexible availability periods on resources

The adapted integer programming formulation, for the job shop problem with flexible resource unavailability periods, is presented in Section 6.3.1. Section 6.3.2 describes the column generation approach; and the main steps are provided in Section 6.3.3.

Adapted integer programming formulation

In addition to the n schedules of the jobs on the machines, the solution to the problem is also represented by the H schedules of the machine unavailability periods. In the following, the unavailability period associated to a given schedule u is denoted by h(u).

Associating schedules to each unavailability period induces less schedules than associating schedules to each machine. Indeed, if we assume that a machine has two unavailability periods and the length of the time window for the first (resp. second) unavailability period is 5 (resp. 3), associating schedules to each unavailability period induces three feasible schedules for the first unavailability period and two for the second one, the total is 5+3; whereas associating schedules to the machine induces 5 × 3 feasible schedules; this number corresponds to the combinations of positions of the two unavailability periods.

In order to introduce the formulation, we need to add the following parameters: U : the set of unavailability periods schedules. We denote by ES h(u) (resp. LS h(u) ) the earliest (resp. latest) period of unavailability period h(u); and p ′ h(u) the duration of h(u). b u t = 1 if unavailability period h(u) is planned at period t on machine r(h) and 0 otherwise. Note that b

u t = 0 if t ∈ [0, ES h(u) [ ∪ ]LS h(u) + p ′ h(u)
, T ]. U (h): set of sequences of unavailability period h. U (h) t = 1 if unavailability period h is processed on period t and 0 otherwise.

We also add the following variable: y u = 1 if the u th feasible schedule is used for unavailability period h(u) and 0 otherwise. Hence, the integer program (MP) can be adapted as follows:

f * = min f = ∑ s∈S C s x s (6.13) ∑ s∈S(Ji) x s = 1 i = 1, .., n (6.14) ∑ u∈U (h) y u = 1 h = 1, .., H (6.15) ∑ s∈S n J i (s) ∑ j=1;mrij =r a s tj x s + ∑ u∈U ;m h(u) =r b u t y u ≤ 1 t = 1, .., T ; r = 1, .., m (6.16)
x s ∈ {0, 1} ∀s ∈ S (6.17)

Job shop problem with flexible availability periods on resources

y u ∈ {0, 1} ∀u ∈ U (6.18)
In the sequel, we refer to this model as (aMP) for adapted-(MP). Here also, the objective is the minimization of the sum of the completion dates of the schedules. Constraint [6.14] (resp. [6.15]) ensures that only one schedule is selected for each job (resp. unavailability period). Constraint [6.16] guarantees that, when a machine is available, it is never used by more than one operation at each period.

Adapted column generation approach

Master problem

As the objective is to solve the linear relaxation of (aMP), we proceed in the same manner as for the Master Problem of Section 6.2.2, to obtain the adapted Reduced Master Problem called (aRMP).

Dual problem

Dual variables are obtained for every constraint of the Master Problem, denoted by γ i for the first n constraints (constraints [6.14]), θ u for the H constraints (constraints [6.15]) and δ tr for the T × m last constraints (constraints [6.16]).

Let us consider the following linear program:

d * = max d = n ∑ i=1 γ i + H ∑ h=1 θ h - T ∑ t=1 m ∑ r=1 δ tr (6.19) γ Ji(s) - T ∑ t=1 n J i (s) ∑ j=1 a s tj δ tmrij ≤ C s ∀s ∈ S (6.20) θ h(u) - LS h(u) +p ′ h(u) ∑ t=ES h(u) b u t δ tm h(u) ≤ 0 ∀u ∈ U (6.21) γ i ≥ 0 i = 1, .., n (6.22) θ h ≥ 0 h = 1, .., H (6.23) δ tr ≥ 0 t = 1, .., T ; r = 1, .., m (6.24)
The previous problem is equivalent to the dual problem of (aMP) with a modification in Constraint (6.21). Indeed, t ∈ [ES h(u) , LS h(u) + p ′ h(u) ] instead of t ∈ [1, T ] in the dual problem.

Pricing problem

We are then searching for:

• a schedule s such that:

γ * Ji(s) - T ∑ t=1 n J i (s) ∑ j=1 a s tj δ * tmrij > C s (6.25)
• or a schedule u such that:

θ * h(u) - LS h(u) +p ′ h(u) ∑ t=ES h(u) b u t δ * tm h(u) > 0 (6.26)
Note that expression [6.25] is the same as [6.9]. If we adopt the same reasoning as for [6.9], here also if operation o of job J i ends at period t in a schedule s, then the contribution of the operation at period t is

w tj = t ∑ l=t-pij +1 δ * lmrij , if j < n i w tj = t + t ∑ l=t-pij +1 δ * lmrij , if j = n i
Then, using the previous notation, [6.25] is equivalent to where c s tj is a boolean parameter which is equal to 1 if operation O ij (1 ≤ j ≤ n i ) of job J i ends at period t.

For every job J i , we are searching for a schedule s verifying [6.27]. Indeed, if there is no such schedule, then no new column needs to be added.

Remarks

• We extend the pretreatment phase of Section 6.2.2.3 to discard some of the periods at which operation O ij cannot be completed. In this extension the pretreatment phase taking into account the job routing constraints is still valid. Only the pretreatment taking into account the constraints from machine unavailability periods is modified as follows: Note that when LS rk -ES rk > T rk -S rk , the length of the interval of schedules overlapping is equal to 0.

If

Conclusion

In this chapter, a column generation approach is presented to solve the job-shop scheduling problem with and without fixed or flexible unavailability periods. Although this approach does not provide better results than the disjunctive formulation of the problem, it provides better linear relaxations in a relatively small computational time. A branch-and-bound procedure is used to solve the model with the newly added columns, but the quality of the solution quickly worsens when the problem size increases. It seems now relevant to develop a branch-and-price procedure, i.e. a procedure where new columns will be added when necessary at each node of the branch-and-bound procedure. Substantial work is however required to develop such a procedure, in particular in defining a new adapted branching scheme.

Chapter 7

Conclusions générales -General conclusions

Dans le chapitre 1, nous avons abordé tout d'abord l'ordonnancement de manière générale et de manière plus particulière l'ordonnancement de production ; et ce pour situer à la fin le contexte de notre étude. Pour cela, nous avons défini les indisponibilités des ressources et leurs flexibilités, les données, contraintes, objectifs et complexité du problème étudié.

Noua avons ensuite présenté au Chapitre 2, les deux catégories de techniques de résolution des problèmes d'optimisation combinatoire en général, et des problèmes d'ordonnancement en particulier. Pour ces deux catégories exact et approchée, les techniques les plus représentatives y ont été décrites ; cependant, seules les approches que nous avons utilisé pour résoudre notre problématique y ont été détaillées. Pour la plupart de ces méthodes, des références y ont été données pour illustrer les problèmes d'ordonnancement d'atelier avec contraintes de disponibilité des ressources.

Pour avoir une vision de l'état de la recherche pour les problèmes d'ateliers avec indisponibilité des ressources et dégager les approches intéressantes à étendre et les pistes de recherche prometteuses, nous avons discuté, dans le Chapitre 3, l'état de l'art couvrant les problèmes d'ordonnancement de production avec limitation de disponibilité des ressources à la fois avec périodes d'indisponibilité fixes et flexibles. Nous pouvons remarquer que les problèmes les plus étudiés ont été les problèmes à une machine, machines parallèles et flow shop. Les études ont essentiellement concerné les problèmes avec périodes d'indisponibilité fixes.

La première approche que nous avons utilisé est la modélisation mathématique du problème du job shop avec contraintes de disponibilité des ressources. Deux modèles mathématiques ont été d'abord présentés lorsque la préemption est non autorisée. La formulation disjonctive permet d'obtenir de meilleurs résultats que la formulation indicée par le temps, même si l'on améliore les résultats de cette dernière des données appropriées. La flexibilité sur les dates de début des périodes d'indisponibilités.

Une formulation disjonctive générale a été ensuite proposée pour modéliser la préemption. Cette dernière ainsi que la flexibilité sur les durées des périodes d'indisponibilités se sont révélées pertinentes. Pour des problèmes de grande taille uniquemenent des solutions réalisables ont été obtenues. Ceci étant due à la forte complexité des problèmes étudiés.

Mise-à-part la résolution des jeux de données dont nous disposons, le but de cette modélisation mathématique est de permettre une meilleure connaissance des problèmes à travers leurs expressions mathématiques. Elle nous renseigne sur la façon de traiter au mieux les contraintes d'indisponibilité des ressources ; et de l'utilité de l'intégration de la flexibilité aux problèmes ; pas uniquement pour représenter la réalité de l'industrie mais aussi pour obtenir de meilleures solutions aux problèmes. Cette modélisation permet aussi d'évaluer la qualité des méthodes approchées ; et ce compte tenu qu'il est difficile de trouver de bonnes bornes théoriques aux problèmes étudiés. Elle peut aussi être facilement étendue pour considérer d'autres critères d'optimisation et inclure d'autres contraintes sur les tâches. C'est une approche souvent négligée compte tenu de la complexité des problèmes concernés ; bien qu'elle peut fournir de meilleurs résultats pour un nombre représentatif d'instances de problèmes. Les heuristiques de construction que nous développons construisent un ordonnanacement basé sur des strétegies de décision. Le choix de ces stratégies est lié à la façon dont les priorités sur les opérations des jobs et/ou les machines, et la manière dont sont gérés les conflits entre les opérations des jobs et les périodes d'indisponibilité.

Deux sortes de méthodes sont suggérées : les heuristiques basées sur les jobs et celles basées sur les machines. Pour le premier type de méhodes, trois heuristiques dont la priorité est sur les opérations des jobs sont développées. Dans les deux premières, Job priority Heuristic (JpH) et Operation priority Heuristic 1 (OpH1), l'aspect aléatoire est introduit respectivement dans l'ordre d'insertion des jobs et des opérations. Dans la troisième heuristique OpH2, l'opération à insérer est sélectionnée par rapport à une règle donnée. Deux heuristiques basées sur les machines sont proposées. Le principe de ces méthodes consistent en associant les priorités aux machines. C'est le choix de la machine qui définit l'ensemble des opérations prêtes à être ordonnancer à sélectinner. Pour l'heuristique MOpH1, étant donné une séquence initiale d'opérations, une fois la ready machine est définie, à partir de l'ensemble des opérations prête à être ordonnancées à exécuter sur cette machine, la première dans la séquence initiale est sélectionnée. Concernant MOpH2, elle est la combinaison de OpH2 et MOpH1. De même que pour MOpH1, la ready machine doit être définie au début de chaque itération. Ainsi, comme pour OpH2, l'opération correspondant à la règle choisie est sélectionnée à partir de l'ensemble d'opération prête à être ordonnancées à exécuter sur la ready machine.

Dans la partie expériementale, les points suivants sont discutés : nombre d'itérations, dominance des rèles de priorité, temps CPU times, préemption des opérations, flexibilité des périodes d'indisponibilité, positions initiales des périodes d'indisponibilité, priorité entre préemption et flexibilité, dominance entre heuristiques, performance des heuristiques en comparaison avec le modèle MIP.

Nous discutons ensuite la façon dont ces heuristiques de construction sont utilisées dans des méthodes afin d'améliorer les résultats du problème étudié. JoH, OpH1, MOpH1 peuvent être utilisées en tant que des blocs d'évaluation dans des méthodes qui utilisent plusieurs solutions en même temps tels que les algorithmes génétiques. OpH1 ainsi que MOpH1 peuvent être réutilisées dans une méthode qui, une fois une opération est séléctionnée est ensuite insérée, réoptimise grâce à OpH1 et MOpH1 la sous-séquence formée par les opérations précédentes dans la séquence initiale.

Pour finir, dans le Chapitre 6, nous présentons deux approches basées sur la génération de colonnes pour résoudre le problème du job shop avec des périodes d'indisponibilités fixes ou flexibles. Bien que ces méthodes ne permettent pas d'obtenir des résultats meilleurs que ceux obtenus grâce aux formulations disjonctives, elles permettent d'obtenir de meilleures relaxations linéaires en un temps court. Pour améliorer la solution obtenue suite au rajout des colonnes, nous utilisons une procédure branch-and-bound (séparation et évaluation) ; nous notons que l'efficacité de cette dernière décroit avec l'augmentation de la taille des problèmes. Pour que l'approche soit une méthode exacte, il est nécessaire de remplacer la méthode branch-and-bound par une méthode branch-and-price. 205 Tables from A.7 to A.10, (resp. from A.11 to A.14) summarize the test results for nonpreemptive, resumable, non-resumable and semi-resumable operations and fixed (resp. flexible) unavailability periods with OpH2. As well, Tables from A.21 to A.24, (resp. from A.25 to A.28) presents the test results for non-preemptive, resumable, non-resumable and semi-resumable operations and fixed (resp. flexible) unavailability periods with MOpH2. Column 1 is the name of the instance; Columns 2-3, 4-5, 6-7, 8-9, 10-11, 12-13 represent respectively the tests results of the heuristic for Rules from (1) to (6); and Columns 14-15 give the test results for the integer resolution of the disjunctive model. Columns 2, 4, 6, 8, 10, 12, 14 correspond to the makespan value of the solution and Columns 3, 5, 7, 9, 11, 13, 15 correspond to the value of the sum of the completion dates of the jobs of the solution.

To show the impact of the initial position of the unavailability periods, Tables A.15 to A.16 gather respectively the test results for resumable operations in case where the flexible are initially placed in the end and the beginning of their time windows with OpH2 heuristic and different rules.

Table A.17 summarizes the test results for resumable operations and flexible unavailability periods for order CAB in OIp procedure with OpH2 heuristic. The structure of the table is the same as Table A.12.

A.1 Job based heuristics

4. 1

 1 Test results for non-preemptive disjunctive formulation. . . . . . . . . . . . . . . 4.2 Number of variables and constraints for initial benchmarks for non-preemptive formulations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Test results for initial benchmarks for non-preemptive formulations. . . . . . . . 4.4 Number of variables and constraints for modified benchmarks for non-preemptive formulations by scale 1 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Test results for modified benchmarks for non-preemptive formulations by scale 1 10 . 4.6 Number of variables and constraints for modified benchmarks for non-preemptive formulations by scale 1 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7 Test results for modified benchmarks for non-preemptive formulations by scale 1 20 . 4.8 Test results of the general disjunctive model in non-preemptive case. . . . . . . . 4.9 Test results of the general disjunctive model in resumable case. . . . . . . . . . . 4.10 Test results of the general disjunctive model in non-resumable case. . . . . . . . . 4.11 Test results of the general disjunctive model in semi-resumable case. . . . . . . . 4.12 Test results for for non-preemptive disjunctive formulation for ∑ C i minimization.114 4.13 Test results for for resumable disjunctive formulation for ∑ C i minimization. . . 4.14 Test results for non-resumable disjunctive formulation for ∑ C i minimization. . . 4.15 Test results for semi-resumable disjunctive formulation for ∑ C i minimization. . 5.1 Rules rank for OpH2 and all availability models. . . . . . . . . . . . . . . . . . . 5.2 Test results for fixed unavailability periods with disjunctive MIP model. . . . . . 5.3 Test results for flexible unavailability periods with disjunctive MIP model. . . . . 5.4 Test results for fixed unavailability periods with JpH heuristic and 1000 iterations.144 5.5 Test results for flexible unavailability periods with JpH heuristic and 1000 iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 Test results for fixed unavailability periods with OpH1 heuristic and 1000 iterations.146 5.7 Test results for flexible unavailability periods with OpH1 heuristic and 1000 iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 5.8 Test results for fixed unavailability periods with OpH2 heuristic and the best solutions through all the rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 5.9 Test results for flexible unavailability periods with OpH2 heuristic and the best solutions through all the rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 5.10 Test results for modification of initial position of unavailability periods in case of resumable operations and flexible unavailability periods with OpH2 heuristic and through all the rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.11 Test results for resumable operations and flexible unavailability periods for orders ABC and CAB in OIp procedure with OpH2 heuristic and through all the rules. 151 5.12 Rules rank for MOpH2 and all availability models. . . . . . . . . . . . . . . . . . 151 5.13 Test results for fixed unavailability periods with MOpH1 heuristic and 1000 iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 5.14 Test results for flexible unavailability periods with MOpH1 heuristic and 1000 iterations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5.15 Test results for fixed unavailability periods with MOpH2 heuristic and through all the rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 5.16 Test results for flexible unavailability periods with MOpH2 heuristic and through all the rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 5.17 Comparing the heuristics in case of non-preemptive operations and fixed unavailability periods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 5.18 Comparing the heuristics in case of resumable operations and flexible unavailability periods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 5.19 Heuristics rank. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 5.20 Comparison of heuristics JpH and JpH-R2 with 100000 iterations. . . . . . . . . 160 5.21 Comparing results for JpH-R2 heuristic and the best values over all the other heuristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 6.1 Test results for disjunctive model for initial benchmarks. . . . . . . . . . . . . . . 178

  Dans la première partie (Part I), constituée des Chapitres de 1 à 3, nous abordons l'ordonnancement de production, les techniques de résolution des problèmes d'optimisation utilisées pour l'ordonnancement, et l'état de l'art de l'ordonnancement de production avec des périodes d'indisponibilité sur les ressources. Le Chapitre 1 décrit l'ordonnancement de production. Nous rappelons donc les structures classiques des problèmes d'odonnancement d'ateliers et nous introduisons des notations et des définitions utilisées en ordonnancement d'atelier et dans le manuscrit. Nous abordons ensuite les aspects de représentations des ordonnancements sous forme de diagramme et de graphe, et les principales notions de complexité des problèmes d'ordonnancement. Nous décrivons à la fin le contexte de l'étude et la caractérisation du problème étudié. Dans le Chapitre 2, nous décrivons brièvement les principales méthodes, représentées par deux grandes familles, utilisées pour résoudre les problèmes d'ordonnancement. Pour chaque méthode, nous présentons l'idée générale. Seules les méthodes que nous utilisons dans notre étude sont plus détaillées. Ces deux familles de méthodes sont : les méthodes exactes qui tentent de trouver des solutions optimales à des problèmes d'optimisation combinatoire, par une exploration intelligente de l'espace des solutions mais souvent très couteuse en terme de temps de calcul ; et les méthodes approchées, représentant une bonne alternative aux méthodes exactes, car elles permettent de trouver de bonnes solutions à moindre coût. Le Chapitre 3 est consacré à un état de l'art couvrant les travaux de recherches menés sur les problèmes statiques et déterministes d'ordonnancement d'atelier avec indisponibilité des resssources jusqu'à 2009. Ainsi ce chapitre est dédié aux problèmes avec des périodes d'indisponibilité fixes et flexibles (on entend ici par la flexibilité la possibilité de faire varier la date de début d'une période d'indisponibilité dans un intervalle défini des dates de début au plus tôt et au plus tard). Nous remarquons que bien que des efforts de recherche ont été fournis pour l'étude de l'intégration de la contrainte de disponibilité des ressouces, ils sont essentiellement concentrés sur le cas où les périodes d'indisponibilité sont fixes. De plus, la plupart des problèmes étudiés sont : le problème à une machine, le problème à machines parallèles et le problème du flow shop. L'intérêt de ce chapitre, est de permettre de faire un état des lieux de la recherche par rapport à la problématique étudiée, et de dégager des pistes d'étude et de réflexion. La deuxième partie (Part II), représentée par les chapitres 4, 5 et 6, présente nos principales contributions à l'étude du problème du job shop sous contraintes de disponibilité des ressources : En premier lieu une approche de modélisation mathématique, ensuite des méthodes approchées et pour finir une approche par génération de colonnes. Mise-à-part la résolution des jeux de données dont nous disposons, le but de la modélisation mathématique, objet du Chapitre 4, est de permettre une meilleure connaissance des problèmes à travers leurs expressions mathématiques. Elle nous renseigne sur la façon de traiter au mieux les contraintes d'indisponibilité des ressources ; et de l'utilité de l'intégration de la flexibilité aux problèmes ; pas uniquement pour représenter la réalité de l'industrie mais aussi pour obtenir de meilleures solutions aux problèmes. Cette modélisation permet aussi d'évaluer la qualité des méthodes approchées et de l'aproche basée sur la génération de colonnes ; et ce compte tenu de la difficulté de trouver de bonnes bornes théoriques aux problèmes étudiés. Elle peut aussi être facilement étendue pour considérer d'autres critères d'optimisation et inclure d'autres contraintes sur les tâches. C'est une approche souvent négligée compte tenu de la complexité des problèmes concernés ; bien qu'elle peut fournir de meilleurs résultats pour un nombre représentatif d'instances de problèmes. Le Chapitre 5 concerne les méthodes approchées. En général, les méthodes approchées (heuristiques) représentent une alternative appropriée aux méthodes exactes pour résoudre des problèmes complexes d'optimisation combinatoire ; et ce, compte tenu de leur capacité à fournir de bonnes solutions à moindre coût. Les méthodes que nous développons pour résoudre notre problématique sont des méthodes qui permettent de construire un ordonnancement en se basant sur des règles de priorité intégrant la flexibilité des périodes d'indisponibilité et l'interruptabilité des tâches par des périodes d'indisponibilité. Nous discutons aussi, la manière dont ces méthodes, qui constituent des blocs de construction, peuvent être intégrées dans d'autre méthodes approchées pour améliorer les résultats obtenus. Le Chapitre 6 présente une approche basée sur la génération de colonnes pour résoudre le problème du job shop avec périodes d'indisponibilité des ressources fixes et flexibles. Cette approche cherche la solution optimale par la construction de modèle commençant par un ensemble réduit de colonnes ; et à chaque fois qu'une colonne semble nécessaire pour satisfaire le problème, elle est ajoutée au modèle jusqu'à ce qu'aucune colonne n'est ajoutée. Une colonne est associée à une tâche ou à une période d'indisponibilité. Cette méthode ne peut être considérée comme étant une méthode exacte pour notre problème. Pour la rendre exacte, il aurait fallu opérer un branch and price à la fin plutôt qu'un branch and bound.

  et al. [BEPSW07]. Dans la Section 1.1 nous présentons des généralités sur les problèmes d'ordonnancement : définition d'un ordonnancement, le type de resources et les composants d'un problème d'ordonnancement. La Section 1.2 décrit les différents problèmes d'ordonnancement d'ateliers. La Section 1.3 introduit des notations et des définitions utilisées en ordonnancement d'atelier et dans le manuscrit ; notamment les composants d'un système de production et leurs caractéristiques, la classification des problèmes d'ordonnancement et les types d'ordonnancement. Les représentations des ordonnancements sous forme de diagramme et de graphe sont presentées en Section 1.4. La complexité des problèmes d'ordonnancement est abordée dans la Section 1.5. Dans la Section 1.6 consacrée à la description du contexte de l'étude et la définition du problème etudié, les périodes d'indisponibilité des ressources et les modèles d'indisponibilité sont définis ; la caractérisation du problème est discutée ; plus particulièrement les données du problème, les contraintes auxquelles est soumis le système de production étudié et les objectifs du problème ; ainsi que l'extension du problème pour tenir compte de la flexibilité des indisponibilités des ressources.

  Figure 1.1: Exemples de problèmes d'atelier.

  Le problme d'ordonnancement à machines parallèles (parallel machines scheduling problem) est une généralisation du problème d'atelier à une machine et un cas particulier de problème d'atelier multi-machines. Chaque job est constitué d'une seule opération et chaque opération peut être réalisée par n'importe laquelle des machines, disposées en parallèle ; mais n'en nécessite qu'une seule. Le problème revient donc à déterminer l'affectation des opérations aux machines ; ainsi que leurs dates d'exécutions. (Voir figure 1.1)

  respectivement aux problèmes à une seule machine, à machines parallèles identiques, à machines parallèles uniformes, à machines parallèles non liées, de type flow shop, de flow shop flexible, de type job shop, de job shop flexible et de type open shop.

  ri : temps de préparation de la machine M r pour le job J i , -M k r : la machine M r possède k périodes d'indisponibilité, -M i : restriction d'admissibilité des machines (machine eligibility restriction). L'ensemble M i désigne l'ensemble de machines pouvant effectuer le job J i , -prmu: l'ordre (ou permutation) selon lequel les jobs passent sur la première machine est maintenu à travers le système, -block : le job complété doit rester sur la machine en amont prevenant ou bloquant cette machine d'effectuer un autre job, -nwt : no-wait implique que les jobs ne peuvent attendre entre deux machines successives, -recrc : recirculation implique qu'un job peut passer sur une machine ou un pool plus d'une fois, • γ : représente la fonction objectif à optimiser -C max = max{C i , i = 1, ••, n} : date de fin de tous les jobs ou makespan. Il correspond à la date de fin de la dernière opération de l'ordonnancement. Un makespan minimum implique usuellement une haute utilisation des machines (productivité), -∑ i C i : somme des dates de fin des opérations. On le réfère aussi comme flow time. Ainsi, la somme pondérée des dates de fin ∑ i w i C i est désignée comme le flow time pondéré. Cela donne une indication sur le coût d'exploitation et d'inventaire induits par l'ordonnancement (minimisation des encours), 1.4 Représentations des ordonnancements -L max = max{L i , i = 1, ••, n} : retard algébrique maximum. Il mesure la pire violation des dates échues, -T max = max{T i , i = 1, ••, n} : retard maximum, -∑ i T i : somme des retards sur les dates d'achèvement des jobs.

Figure

  Figure (1.2).

Figure 1 . 2 :

 12 Figure 1.2: Diagramme de Gantt associé à l'exemple 1.1.

Figure 1 . 3 :

 13 Figure 1.3: Graphe disjonctif arbitré associé à l'exemple 1.1..

Figure 1 . 4 :Figure 1 . 5 :

 1415 Figure 1.4: Les différents cas d'interruption d'une opération

•

  Figure 1.6: Fenêtre de temps pour une date de début d'une période d'indisponibilité

  [Sou05], Lorigeon et al. [LBB02], Canon et al. [CBB03], Mauguière et al. [MBB03a,MBB03b,MBB05], Chen [Che06,Che07], Kacem and Chu [KC08a], Kcem et al. [KCS08] treat the single machine problem. Gharbi and Haouari [GH05], Mellouli et al. [MSCK09] investigate the parallel machines problem. Blazewicz et al. [BFKPS00], Kubiak et al. [KBFBS02] are interested in the flow shop problem. Allaoui [All04], Allaoui and Artiba [AA06], Kaabi [Kaa04] study the hybrid flow shop problem. Aggoune [Agg02], Mauguière et al. [MBB03a,b] tackle the job shop problem.

  [Sad02], Kacem et al. [KCS08] study the single machine problem, Lee [Lee96], Lee and Liman [LL93], Mellouli et al. [MSCK09] deal with the parallel machines problem, Lee [Lee97], Allaoui et al. [AAR03, AAER06], Kubzin et Strusevich [KS05, KS06] tackle the flow shop problem.

[

  KGV83]), tabu search (Glover [Glo86]), ants colony (Colorni et al. [CDM91]), local search, hill climbing. The interested reader will find more details on these different methods in Taillard et al. [TGGP01], Dréo et al. [DPST03] and Talbi [Tal09].

Algorithm 3

 3 The genetic algorithm Begin Define a coding and generate an initial population Evaluate each individual of the population while a stopping condition is not satisfied do Select individuals for recombining Apply variation operators (crossover, mutation) on the selected individuals Evaluate the performance of the new individuals Replace individuals to get the new population end while end As examples of applications of genetic algorithms to production scheduling under machine availability constraints, Aggoune [Agg02] and Kaabi [Kaa04] study the flow shop problem, Aggoune [Agg02], Harrath [Har03] tackles the job shop problem and Levitin [Lev00], Zribi [Zri05], Gao et al. [GSS06], Chan et al. [CWC06] deal with the flexible job shop problem.

  Liu and Sanlaville[START_REF] Liu | Preemptive scheduling with variable profile, precedence constraints and due dates[END_REF][START_REF] Liu | Stochastic scheduling with variable profile and precedence constraints[END_REF] study the parallel machine problem with resumable availability constraints considering the precedence constraints. For the P m , N C|prmp, chains|C max problem (the problem with chains and arbitrary pattern of unavailability), the Longest Remaining Path (LRP) rule is used to solve the problem in a polynomial time by. The P m2 , N C|prmp, prec|C max (the problem of two parallel machines and arbitrary patterns of availability) can also be solved by LRP in case of arbitrary task precedence relations in time complexity O(n 2 ).

  scheme is developed. It has a time complexity of O( 1 4 n 5 ).

  quencing problems. For the resolution of the assignment problem, a priority rule based heuristic is developed. The lower bound used is based on the relaxation of the non-preemption constraint and the use of Jackson's rule. Regarding the sequencing problem, a genetic algorithm is proposed. The temporized geometric approach, proposed by Aggoune [Agg02] is generalized. Chan et al. [CWC06] develop a genetic algorithm-based approach to solve iteratively a resource-constrained operations-machines assignment problem and flexible job-shop scheduling problem. The flexibility introduced in the flexible shop floor can be quantified under different levels of resource availability.

  gap = |Best solution -Best bound| |Best solution| Columns 5, 9 and 13 give the CPU time (in seconds).

  3. Columns 2 to 7 present the results of the disjunctive formulation, whereas Columns 8 to 13 present the results of the time-indexed formulation. Columns 2 and 8 (resp. 3 and 9) give the linear relaxation (resp. the CPU time) of the formulations. Columns 4 to 7 present the results of the disjunctive mixed integer program, whereas Columns 10 to 13 present the results of the time-indexed integer linear program. Columns 4 and 10 correspond to the best lower bound, and Columns 5 and 11 4.1 Job shop problem with limited resource availabilityTable 4.1: Test results for non-preemptive disjunctive formulation.

  to the objective function of the best solution. Columns 6 and 12 give the gap whereas Columns 7 and 13 give the CPU time (in seconds).The test results for modified benchmarks are presented in Table4.5 and 4.7. Columns 2 to 5 present the results of the disjunctive mixed integer program, whereas Columns 6 to 9 present the results of the time-indexed integer linear program. Columns 2 and 6 correspond to the best lower bound, and Columns 3 and 7 to the objective function of the best solution. Columns 4 and 8 show the gap. Columns 5 and 9 give the CPU time (in seconds).

  [4.7], Constraint [4.34] expresses the transitive relationship between an operation and unavailability periods on the same machine. Constraint [4.35] (which replaces Constraint [4.8]) indicates that the schedule cannot be completed before the end of the last operation of each job. Constraint [4.36]) represents a bound for completion dates of operations. It is relevant when the machine is continuously available, otherwise it can be redundant. Constraints from

  [4.37] to [4.41] provide bounds on the variables of the model.

Figure 4 . 1 :

 41 Figure 4.1: Position of operation O ij depending on values of Y ij,rk and Z ij,rk .

  rk . The number of constraints are: N -n constraints [4.2], 2N X constraints [4.3] and [4.4], 3N Y constraints [4.5]-[4.7], n constraints [4.8] and 1 constraint [4.9]. Non-fixed starting dates for unavailability periods Comparing to the case of fixed starting dates, this model requires N h additional variables. Without unavailability periods Compared to the case of fixed starting dates, this model requires N Y less variables (for Y ij,rk ) and 3N Y less constraints (for Constraints [4.5]-[4.7]).

Figure 5 . 1 :

 51 Figure 5.1: Comparison between Cases A, B and C before inserting operation O ij

5. 1

 1 Figure 5.2: Comparison between Cases A, B and C after inserting operation O ij

Figure 5 .

 5 Figure 5.3: Operation insertion according to Case A

Figure 5 . 4 :

 54 Figure 5.4: Operation insertion according to Case B.

Figure 5 . 5 :

 55 Figure 5.5: Operation insertion according to Case C.

Figure 5 . 6 :-

 56 Figure 5.6: OIp procedure.

Figure 5 . 7 :

 57 Figure 5.7: Operation insertion according to Case D.

  solution ∼: gap between the best solution and the MIP solution ≤ 10% +: better solution than MIP oneTable 5.18: Comparing the heuristics in case of resumable operations and flexible unavailability periods. solution ∼: gap between the best solution and the MIP solution ≤ 10% +: better solution than MIP oneTable 5.20: Comparison of heuristics JpH and JpH-R2 with 100000 iterations. Problem Non-preemptive operations and fixed unavailability periods Resumable operations and flexible unavailability

Figure 6 . 1 :

 61 Figure 6.1: Example of schedule set S for a problem without machine unavailability periods.

Figure 6 . 2 :

 62 Figure 6.2: Example of schedule set S for the problem of Figure 6.1 with machine unavailability periods.

  expressed by the sum of the durations of the first j operations. Then,w tj = +∞, ∀t = 1, .., B l -1 1.b.By analogy, operation O ij cannot be completed after the starting time of the next operation in the job routing. Hence, an upper bound for the completion period of O ij , is given byB u = T -( ∑ ni j ′ =j+1 p ij ′ ) -1.It is deduced from the sum of the durations of the n i -j last operations. Hence,w tj = +∞, ∀t = B u + 1, .., T2. Constraints from machine unavailability periods.6.2 Non-preemptive job shop problem with fixed resource availability periods2.a. Operation O ij cannot be processed (hence be completed) during the period [S rk , T rk ] reserved to an unavailability period h rk on machine r = mr ij . Then,wtj = +∞, ∀t = S rk , .., T rk 2.b. Since operation O ij is non-preemptive and/or unavailability period h rk is noncrossable,

  Le modèle disjonctif général a été facilement étendu pour considérer d'autres critères d'optimisation et inclure d'autres contraintes sur les tâches et modéliser le problème du job shop flexible avec limitations des disponibilité des ressources. Nous présentons dans le Chapitre 5 pour résoudre le problème du job shop avec limitation des ressources. L'introduction de la flexibilité sur les dates de début des périodes d'indisponibilité et la préemption des operations est étudiée.

5 :

 5 2: Test results for resumable operations and flexible unavailability periods with JpH heuristic and different numbers of iterations. 3: Test results for non-preemptive operations and fixed unavailability periods with OpH1 heuristic and different numbers of iterations. 4: Test results for resumable operations and flexible unavailability periods with OpH1 heuristic and different numbers of iterations. CPU time for JpH heuristic and different numbers of iterations.

  1

  7: Test results for non-preemptive operations and fixed unavailability periods with OpH2 heuristic and different rules.

  8: Test results for resumable operations and fixed unavailability periods with OpH2 heuristic. 9: Test results for non-resumable operations and fixed unavailability periods with OpH2 heuristic. 10: Test results for semi-resumable operations and fixed unavailability periods with OpH2 heuristic. TableA.11: Test results for non-preemptive operations and flexible unavailability periods with OpH2 heuristic. 12: Test results for resumable operations and flexible unavailability periods with OpH2 heuristic and different rules. 13: Test results for non-resumable operations and flexible unavailability periods with OpH2 heuristic. 14: Test results for semi-resumable operations and flexible unavailability periods with OpH2 heuristic. 15: Test results for resumable operations and flexible unavailability periods placed at the end of their time windows with OpH2 heuristic. 16: Test results for resumable operations and flexible unavailability periods placed at the beginning of their time windows with OpH2 heuristic. 17: Test results for resumable operations and flexible unavailability periods for order CAB in OIp procedure with OpH2 heuristic. 18: Test results for non-preemptive operations and fixed unavailability periods with MOpH1 heuristic and different numbers of iterations. 19: Test results for resumable operations and flexible unavailability periods with MOpH1 heuristic and different numbers of iterations. 20: CPU time for MOpH1 heuristic and different numbers of iterations.

  22: Test results for resumable operations and fixed unavailability periods with MOpH2 heuristic. 23: Test results for non-resumable operations and fixed unavailability periods with MOpH2 heuristic. 24: Test results for semi-resumable operations and fixed unavailability periods with MOpH2 heuristic. 26: Test results for resumable operations and flexible unavailability periods with MOpH2 heuristic and different rules.

  28: Test results for semi-resumable operations and flexible unavailability periods with MOpH2 heuristic.

  durée d'exécution), sa date de disponibilité (release date) (date à laquelle elle peut être exécutée au plus tôt), qui lorsqu'elle existe est impérative, sa date de fin au plus tard souhaitée (due date) ou date d'échéance, les contraintes de précédence (precedence constraints), et qui représente un ordre partiel des opérations. La date d'échéance peut souvent être violée au prix de pénalités diverses

; si elle est impérative, elle est appelée deadline. L'opération est soit non-préemptive (nonpreemptive) si elle doit être réalisée sans interruption, soit préemptive (preemptive) si elle peut être effectuée par morceaux.

  ••, n} : maximum des avances,

	-	∑ i U

i : nombre de jobs en retard.

∑

i w i U i : nombre pondéré de jobs en retard, A titre d'exemple, J m |pmtn|C max désigne le problème de la minimisation du makespan C max dans un atelier de type job shop à m machines et où la préemption est autorisée.

1.3.3 Types d'ordonnancement

Il existe différents types d'ordonnancement définis comme suit : Un ordonnancement est semiactif (semi-active) lorsqu'il est impossible d'avancer une opération sans modifier la séquence des opérations sur la ressource. Il est dit actif (active) s'il est impossible d'avancer une opération sans reporter le début d'une autre opération. Il est dit sans retard ou sans délai (non-delay) si et seulement si aucune opération n'est mise en attente lorsqu'une machine est disponible pour l'exécuter. Ainsi, les ordonnancements sans retard sont inclus dans le sous-ensemble des ordonnancements actifs ; qui sont eux mêmes inclus dans le sous-ensemble des ordonnancements semi-actifs. Baker [Bak74] a énoncé la propriété suivante : l'ensemble des ordonnancements semi-actifs est dominant dans les problèmes d'optimisation d'un critère régulier et le sousensemble des ordonnancements actifs est le plus petit ensemble dominant.

6 Contexte de l'étude et définition du problème étudié 1.6 Contexte de l'étude et définition du problème étudié 1.6.1 Périodes d'indisponibilité des machines et modèles d'indisponibilités

  Dans la plupart des travaux dédiés à l'ordonnancement de production, les machines sont supposées être disponibles en continu pour effectuer des jobs. Ceci n'est pas toujours vrai : les différentes ressources aussi bien matérielles qu'humaines peuvent être indisponibles pour diverses raisons. Les dates et les durées des périodes d'indisponibilité sont connues dans certains

	La complexité des algorithmes est un indicateur de performance permettant de comparer les
	solutions à un problème. Elle représente le dénombrement des opérations élémentaires (affec-
	tation, comparaison, opérations arithmétiques, évaluation d'une expression, ...) effectuées par
	l'algorithme. Ainsi, si l'on dispose d'un algorithme polynômial (en fonction de la taille des
	données), exemple O(n

2 ), O(n 3 ), .., cela signifie que le nombre d'opérations élémentaires est majoré par c × n 2 , c × n 3 ,... où c est une constante. La théorie de la complexité ([Coo71], [Kar72], [GJ79]) permet d'analyser les coûts de résolution des problèmes d'optimisation combinatoire et de classifier les problèmes en plusieurs classes de difficulté. Pour un problème donné, la distinction est faite entre problème d'optimisation et problème de décision ( decision problem ou de reconnaissance et dans lequel la réponse attendue à une question donnée est oui ou non) associé en transformant par exemple la fonction objectif en une fonction binaire. Les problèmes de classe P dits polynômiaux (polynomial) sont des problèmes pour lesquels il existe des algorithmes qui les résolvent en un temps polynomial des tailles des problèmes. La classe des problèmes N P (N P pour Non deterministic Polynomial) est la classe des problèmes de décision pouvant être résolus par un algorithme polynômial non déterministe. La classe N P -complet (N P -complete class) est une sous-classe des problèmes N P . Un problème est N Pcomplet quand tous les problèmes appartenant à N P lui sont réductibles. Ainsi, si on trouve un algorithme polynômial pour un problème N P -complet, on trouve automatiquement une résolution polynômiale de tous les problèmes de classe N P . Un problème d'optimisation est dit N P -difficile (N P -hard) si le problème de décision qui lui correspond est N P -complet. Si on peut construire des algorithmes appelés algorithmes pseudo-polynômiaux (pseudo-polynomial), qui sont des algorithmes polynômiaux en fonction de la longueur des données (taille mémoire) ; le problème étudié est alors dit N P -complet au sens faible (in a weak sense) ; autrement, il est N P -complet au sens fort (in a strong sense).

1.cas : congés du personnel, activités de maintenance des machines, etc. D'autres périodes d'indisponibilité telles que les pannes machines ou les défections du personnel ne sont pas prévisibles. La présence des "trous" dans un planning influence les processus de production de façon significative. Le problème étant qu'une ressource additionnelle pour absorber cette charge de travail n'est pas forcément disponible. Il est alors nécessaire de trouver la meilleure façon de répartir la charge de travail entre les machines en prenant en compte ces périodes d'indisponibilité, le type des opérations que les machines peuvent effectuer, l'ordre entre les opérations. Il existe dans la littérature quatre cas de figure pour lesquels une opération peut être interrompue par une période d'indisponibilité ; et qui sont illustrés par la Figure 1.4 : opérations strictement non-préemptives (non-preemptive), sécables (resumable), non-sécables (non-resumable), semi-sécables (semi-resumable). Le premier cas est dû à Aggoune [Agg02,Agg04] et les trois autres à Lee [Lee96,Lee97,Lee99]. Une opération est dite strictement non-préemptive lorsqu'elle ne peut être interrompue ni par une autre opération ni par une période d'indisponibilité. Une opération interrompue par une période d'indisponibilité est dite sécable si son exécution peut continuer aussitôt que la machine qui l'exécute est de nouveau disponible. Elle est dite nonsécable si elle doit recommencer complètement. Il est important de noter que ce cas est différent du cas non-préemptif du fait que dans ce dernier, lorsque l'opération ne peut être effectuée avant la période d'indisponibilité, elle doit commencer et se terminer après. Une opération est dite semi-sécable si elle doit partiellement recommencer lorsque la machine est de nouveau disponible. Noter que l'étude du cas semi-sécable inclue les cas sécable et non-sécable. Cependant, l'étude du cas non-sécable est moins pertinente à considérer que les autres cas ; car nous étudions des périodes d'indisponibilité prévues.

  Nous associons pour chaque opération O ij un coefficient de pénalité sur la premption (coefficient of penalty on preemption) α ij qui représente la partie de l'opération O ij à refaire après la période d'indisponibilité l'interrompant ; il représente son caractère sécable.

	Ainsi,

Cette séquence ne dépend que du job et peut varier d'un job à l'autre, • L'opération O ij est la j eme opération de la gamme opératoire de J i . Les dates de début et de fin calculées sont désignées par t ij et C ij , • L'opération O ij nécessite l'utilisation de la machine mr ij pendant p ij unités de temps appelé durée opératoire connue à l'avance (aucune incertitude sur sa détermination), • Chaque machine M r possède m r périodes d'indisponibilités {h r1 , h r2 , ••, h rk , ••, h rmr }, • La période d'indisponibilité h rk est la k eme période d'indisponibilité de M r . Lorsque sa date de début S rk n'est pas connue à l'avance, une fenêtre de temps [ES rk , LS rk ] est définie pour S rk où ES rk (resp. LS rk ) est sa date de début au plus tôt (resp. au plus tard). De même, sa durée p ′ rk , si elle n'est pas connue à l'avance, peut être choisi dans un ensemble de valeurs, •

2.2 Approximation methods Algorithm 1 The simulated annealing algorithm

	Begin
	Define an initial solution s
	Evaluate this solution: f (s)
	Initialize temperature T emp
	while a stopping condition is not satisfied
	Select s ′ a neighbor of s
	if s ′ is better than s or U ≤ exp(-∆f T emp ) (U ∈ [0, 1]: random uniform number)
	then s ′ is the new value of s
	end if
	Decrease the temperature T emp
	end while
	end
	new regions of the space.

while end 2.2.3.3 Genetic Algorithms

	Algorithm 2 The tabu search algorithm
	Begin
	Define an initial solution s
	Evaluate this solution: calculate f (s)
	while a stopping condition is not satisfied
	Find the best allowed movement in the neighborhood of s
	Update the memory structures
	Construct the solution s ′ associated with the selected movement
	end Unlike local search algorithms such as Simulated Annealing and Tabu Search which need only
	one feasible solution, the Genetic Algorithms consider a population of feasible solutions called
	individuals.

  Lu and Posner[START_REF] Lu | An NP-hard open shop scheduling problem with polynomial average time complexity[END_REF] develop a polynomial algorithm for the makespan minimization in the two-machine open shop problem, where one of the machines is not available at time zero, and the operations are non-preemptive.

Kubzin and Strusevich

[START_REF] Kubzin | Planning Machine Maintenance in Two-Machine Shop Scheduling[END_REF]

consider the O 2 ||C max in which each machine has a maintenance activity, and whose duration depends on its starting time. The authors prove that the open shop problem is polynomially solvable for general functions defining the length of the maintenance periods.

1 Job shop problem with limited resource availability the

  job shop scheduling problem. The second one is using time-indexed variables and is based on the formulation of Pritsker et al.[START_REF] Pritsker | Multi-Project Scheduling with Limited Resources: A Zero-One Programming Approach[END_REF] for the resource constrained project scheduling problem (RCPSP). In the latter, we need to introduce a schedule length and time windows also for starting dates of job operations.The disjunctive formulation is a very natural way to model the problem. The relations between operations and unavailability periods are easy to express as inequalities, and less variables and constraints are necessary than the second model. But the Linear Programming relaxations (i.e. dropping the integrality requirements on the variables) of the time-indexed formulation

Two mathematical models are presented and compared as scheduling problems can be modeled in two usual ways as integer linear programs: by using disjunctive variables or time-indexed variables. The first model is based on the disjunctive graph of Roy and Susmann

[START_REF] Roy | Les Problèmes dordonnancement avec Contraintes Disjonctives[END_REF]

for

4.

provide strong bounds, usually better than the bounds provided by other mixed integer programming models (Van Den Akker et al.

[START_REF] Van Den Akker | Time-indexed formulations for machine scheduling problems: Column generation[END_REF]

for the single-machine scheduling problem and Demassey et al.

[START_REF] Demassey | AConstraint-propagation-based cutting planes: An application to the resource-constrained project scheduling problem[END_REF]

for the RCPSP). Moreover, many constraints such as deadlines and release dates can simply be handled by fixing some variables to 0 (Van Den Akker et al.

[START_REF] Van Den Akker | Time-indexed formulations for machine scheduling problems: Column generation[END_REF]

). However, the number of variables and constraints induced by the time-indexed formulation can be huge depending on the numbers of jobs, machines, processing times of operations and durations of unavailability periods.

The disjunctive formulation is presented in Section 4.1.1.1 and the time-indexed formulation in Section 4.1.1.2. Section 4.1.1.3 presents and discusses test results performed on ILOG CPLEX 10.

4.1 Job shop problem with limited resource availability the

  The objective function [4.1] is the minimization of the makespan C max . The conjunctive constraint [4.2] ensures that an operation O i ′ j ′ which follows an operation O ij in the routing cannot start before the completion of O ij . The disjunctive constraints [4.3] and [4.4] guarantee non overlapping of operations O ij and O i ′ j ′ that must be processed on the same machine, i.e. that operation O ij is either processed before or after operation O i ′ j ′ . Similarly, Constraints [4.5] and [4.6] ensure that operation O ij is either processed before or after unavailability period h rk . Disjunctive constraints are associated to resource constraints which express the fact that, when a machine is available, it can process only one operation at a time. Constraint [4.7] implies that, if operation O ij precedes unavailability period h rk , then it precedes all unavailability periods which follow h rk . Moreover, if operation O ij follows unavailability period h r(k+1) , then it follows all unavailability periods which precede h r(k+1) . Constraints [4.8] indicates that the schedule cannot be completed before the end of the last operation of each job. Constraints from [4.9] to [4.12] provide bounds on the variables of the model.

	Non

-fixed starting dates for unavailability periods

  Here we assume that, in our problem, the starting date S rk of unavailability period h rk can vary in the interval [ES rk , LS rk ]. Then the following constraints are added to the model in case of fixed starting dates of unavailability periods:

	S rk ≥ ES rk	∀h rk	(4.13)
	S rk ≤ LS rk	∀h rk	(4.14)

Constraint [4.13] (respectively, [4.14]) ensures that S rk starts after its earliest starting date ES rk (respectively, before its latest starting date LS rk ).

  T , unavailability period h rk must start in the interval [ES rk , LS rk ] and also the processing of each operation O ij must start in the time window defined by the interval [Et ij , Lt ij ] where Et ij (resp. Lt ij ) is the earliest (resp. latest) starting date of O ij . The interval is relevant to reduce the number of variables.The variables of the model are:x t ij : Binary variable which is equal to 1 if operation O ij starts at time t and 0 otherwise, y t rk : Binary variable which is equal to 1 if unavailability period h rk starts at time t and 0 otherwise. Note that the same variable can be used for both operations and unavailability periods.

	The starting dates of O ij and h rk are respectively	∑ Ltij t=Etij tx t ij and	∑ LS rk t=ES rk ty t rk .

4.1 Job shop problem with limited resource availability

  The objective function[4.15] is the minimization of the makespan. Constraint [4.16] (resp. [4.17]) expresses the fact that an operation O ij (resp. an unavailability period h rk ) must be processed once. Constraint [4.2] is replaced by Constraint [4.18] to ensure the precedence constraints between start dates of consecutive operations in job routings. Constraint [4.19] replaces Constraint [4.8] and ensures that the schedule cannot end before the completion of the last operation of each job. Precedence constraints between operations of different jobs or between operations and unavailability periods which must be scheduled on the same machine are implicitly expressed throughConstraint [4.20]. Indeed, at most only one operation can be processed at time t but only if the machine is available. This is the resource constraint. It If schedule length T and time windows of O ij and h rk are large, the formulation contains a huge number of variables and resource constraints.

	replaces the disjunctive constraints ([4.3] to [4.6]). Constraints [4.21] to [4.23] provide bounds
	on the variables of the model.
	Machines without unavailability periods
	From the previous model, Constraint [4.17] and variables y t rk are removed and Constraint ∑ mr [4.20] is modified by deleting the term k=1
		, mr;
	t = ES rk ..LS rk	(4.23)

Table 4 .

 4 2: Number of variables and constraints for initial benchmarks for non-preemptive formulations.

	Problem class	m	n	Disjunctive formulation	Time-indexed formulation
				Number of	Number of	Number of	Number of
				variables	constraints	variables	constraints
	(5,5)	5	5	136	250	25446	7565
	(5,10)	5	10	386	750	75331	10115
	(10,10)	10	10	771	1500	149960	25230

Table 4 .

 4 3: Test results for initial benchmarks for non-preemptive formulations.

	Problem		Disjunctive formulation			Time-indexed formulation
		Linear	CPU	Best	Best	Gap	CPU	Linear	CPU	Best	Best	Gap	CPU
		relaxation(sec)	bound	solution (%)	(sec)	relaxation	bound	solution (%)	(sec)
	5m5n1	550	0	825	825	0	0.07	725.62	1.15	793.89 915	13.24 2058.89
	5m5n2	610	0	1076	1076	0	0.02	801.49	2.09	1076.00 1076	0	102.85
	5m5n3	600	0	1034	1034	0	0.22	722	1.07	789.36 1486	46.88 1925.21
	5m5n4	650	0	1108	1108	0	0.28	853.85	1.25	921.16 1239	25.65 3208.93
	5m5n5	590	0	1182	1182	0	0.63	841.11	2.48	889.55 1255	29.12 2978.15
	5m10n1 630	0.01	1300	1300	0	51.58	943.28	124.77 u			907.68
	5m10n2 610	0.01	1278	1400	8.71	3580.74 956.49	161.21 u			908.36
	5m10n3 600	0	1427	1578	9.57	3590.55 1078.02 141.74 u			908.96
	5m10n4 650	0.01	1492	1492	0	2555.96 1084.84 57.95 u			909.22
	5m10n5 630	0	1372	1372	0	255.59 905.82	39.33 u			909.38
	10m10n1 1170	0.01	1824	1847	1.25	3589.91 1451.70 83.24 u			916.79
	10m10n2 1200	0.01	1839	1839	0	1303.69 1373.89 182.15 u			916.44
	10m10n3 1130	0.01	1773	1773	0	836.54 1388.47 153.55 u			916.90
	10m10n4 1170	0.01	1693	1693	0	3591.18 1346	18.49 u			915.05
	10m10n5 1140	0.01	1833	1833	0	3477.83 1351.85 87.22 u			914.00
		bold: best solution
		u: unknown
	heuristic to calculate better earliest and latest starting dates of the operations to reduce the
	number of variables. Note that we tested several modifications of CPLEX parameters to improve
	the results.

Table 4 .

 4 5: Test results for modified benchmarks for non-preemptive formulations by scale 1 10 .

	Problem	Disjunctive formulation			Time-indexed formulation
	Best	Best	Gap	CPU	Best	Best	Gap	CPU
	bound	solution	(%)	(sec)	bound	solution	(%)	(sec)
	5m5n1div10	83	0	0.08	83	83	0	19.94
	5m5n2div10	103	0	0.05	103	103	0	9.14
	5m5n3div10	104	0	0.05	104	104	0	28.19
	5m5n4div10	111	0	0.17	111	111	0	57.91
	5m5n5div10	119	0	0.45	119	119	0	778.29
	5m10n1div10	130	0	509.04	102.19	177	42.26	3302.59
	5m10n2div10	140	1.43	3598.07	96	159	39.62	3442.16
	5m10n3div10	158	13.29	3532.43	119	195	38.97	3294.46
	5m10n4div10	149	9.40	3598.03	120	168	28.57	2867.04
	5m10n5div10	137	1.46	3598.33	105	166	36.75	2605.20
	10m10n1div10	185	0	971.87	u			1702.90
	10m10n2div10	184	0	831.94	u			2511.23
	10m10n3div10	178	0	1474.63	u			2148.58
	10m10n4div10	169	0	478.14	u			3163.02
	10m10n5div10	184	3.80	3594.17	u			926.02
	bold: best solution
	u: unknown

Table 4 .

 4 6 shows that the number of variables and constraints for the time-indexed formulation decreases considerably whereas it has no influence for the disjunctive formulation. The results of the resolution of the instances by the time-indexed formulation are improved again (see Table4.7). Table 4.6: Number of variables and constraints for modified benchmarks for non-preemptive formulations by scale 1 20 .

	Problem class	m	n	Disjunctive formulation	Time-indexed formulation
				Number of	Number of	Number of	Number of
				variables	constraints	variables	constraints
	(5,5)	5	5	136	250	1635	440
	(5,10)	5	10	386	750	4190	615
	(10,10)	10	10	771	1500	10595	1730

Table 4 .

 4 7: Test results for modified benchmarks for non-preemptive formulations by scale 1 20 .

	Problem	Disjunctive formulation			Time-indexed formulation
		Best	Best	Gap	CPU	Best	Best	Gap	CPU
		bound	solution	(%)	(sec)	bound	solution	(%)	(sec)
	5m5n1div20	34	34	0	0.06	34	34	0	0.65
	5m5n2div20	40	40	0	0.06	40	40	0	1.54
	5m5n3div20	42	42	0	0.07	42	42	0	26.93
	5m5n4div20	47	47	0	0.07	47	47	0	1
	5m5n5div20	47	47	0	0.10	47	47	0	37.15
	5m10n1div20	50.54	59	14.33	3600	46	70	2.13	3600
	5m10n2div20	66	66	0	1414.94	60	66	3.06	3600
	5m10n3div20	57	73	21.92	3600	75	78	30.85	3600
	5m10n4div20	62	72	13.89	3600	68	78	12.82	3600
	5m10n5div20	60	64	6.25	3600	55	71	22.54	3600
	10m10n1div20 79	90	12.22	3600	u			3600
	10m10n2div20 87	87	0	858.98	u			3600
	10m10n3div20 81	81	0	343.98	u			3600
	10m10n4div20 73	82	10.98	3600	u			3600
	10m10n5div20 84	84	0	1760.63	69	150	54	3600
	bold: best solution
	u: unknown

1 Job shop problem with limited resource availability

	Cij -tij ≥ pij	i = 1, .., n; j = 1, .., ni	(4.36)
	tij ≥ 0	i = 1, .., n; j = 1, .., ni	(4.37)

rk ∀h rk , ∀Oij s.t. mrij = Mr (4.34) Cmax ≥ Cin i i = 1, .., n (4.35) 100 4.

  ). As in Constraint [4.2], conjunctive Constraint [4.25] ensures the respect of job routings. The disjunctive constraints [4.26] and [4.27] (which replace Constraints [4.3] and [4.4]) guarantee the non-overlapping of operations O ij and O i ′ j ′ that must be processed on the same machine. The disjunctive constraint [4.28] ensures that, if Y ij,rk = 0, then operation O ij must be processed after unavailability period h rk . Otherwise, the constraint is always satisfied. It is similar to Constraint [4.5]. Constraint [4.29] expresses the fact that, when Y ij,rk = 1, operation O ij must start before the starting date of unavailability period h rk . But, depending on the values of β ijk and Z ij,rk , it can either start and finish before h rk or start before h rk and finish after. When β ijk = 0 (no preemption allowed), O ij starts and finishes before the starting date of h rk whatever the value of Z ij,rk . But when β ijk = 1 (preemption allowed), it depends on the value of Z ij,rk . When Z ij,rk = 0, operation O ij must start and finish before h rk whereas, when Z ij,rk = 1, O ij starts before h rk and finish after (O ij is interrupted by h rk ). Note that, when Y ij,rk = 0, Constraint [4.29] is always satisfied. Constraint [4.30] expresses the possibility of interrupting O ij when it starts before h rk (see Figure (4.1)). Constraints [4.31] and [4.32] provide lower bounds for C ij -t ij which corresponds to the duration of operation O ij on machine M r . Indeed, when O ij is not interrupted by h rk , this duration is at least equal (actually is equal) to the processing time p ij . But when, O ij is interrupted by h rk , this duration is at least equal (actually is equal) to the processing time p ij increased by the duration p ′ rk of the unavailability period and the proportion of the operation to redo (p ij + p

	′

1 Job shop problem with limited resource availability

		k = 1, .., mr;
		l = 1, .., V rk	(4.46)
	Hence, in the above model, Constraint [4.28] is replaced by Constraint [4.42] and Constraint
	[4.32] by Constraint [4.43]. Constraint [4.44]
		m	(4.44)
	mr ∑	V rk ∑
		v rkl p
	k=1	l=1

′ rkl ≥ hr r = 1, .., m (4.45) p ′ rkl ∈ {0, 1} r = 1, .., m; 102 4.

Table 4 .

 4 8: Test results of the general disjunctive model in non-preemptive case.

Table 4 .

 4 9: Test results of the general disjunctive model in resumable case.

	3545.34
	13.69
	1680
	1450
	3

Job shop problem with limited resource availabilityTable 4 .

 4 10: Test results of the general disjunctive model in non-resumable case.

					4.1
	10m15n5	10m15n4	10m15n3	10m15n2	10m15n1	10m10n5	10m10n4	10m10n3	10m10n2	10m10n1	5m10n5	5m10n4	5m10n3	5m10n2
	1537.37	1457	1415	1655	1563	1641	1455	1560	1561	1578	1024	1047	989.20	1051
	6392	6958	2313	2460	2310	1870	1755	1815	1822	1907	1386	1492	1583	1400
	75.95	79.06	38.82	32.72	32.34	12.25	17.09	14.05	14.32	17.25	26.12	29.83	37.51	24.93
	2186.95	1858.05	2491.91	2420.44	2193.86	2084.82	2145.85	2015.76	2607.49	2629.69	2219.43	2314.88	2320.4	2087.99
	1492	1344.08	1413.97	1527	1473	1443.83	1435	1458	1582	1498	1084	1090	1039.62	970
	2292	4941	4202	2450	2087	1839	1701	1726	1915	1912	1372	1492	1563	1400
	34.90	72.80	66.35	37.67	29.42	21.49	15.64	15.53	17.39	21.65	20.99	26.94	33.49	30.71
	2368.06	2790.20	2121.47	2198.51	2453.20	2404.60	2386.44	2463.87	1834.03	2052.89	2594.16	2309.88	2350.26	2633.12	1919.40
	1336.09	1300	1350	1328.42	1340	1345.70	1320	1366.19	1459	1410	930	972	960	950	890
	2321	1951	2047	2150	3475	1721	1565	1580	1690	1700	1243	1376	1389	1290	1177
	42.43	33.37	34.05	38.21	61.44	21.81	15.65	13.53	13.67	17.06	25.18	29.36	30.89	26.36	24.38
	3568.95	3542.84	3555.99	3532.5	3573.83	3535.78	3552.26	3552.65	3535.8	3561.88	3451.59	3498.93	3489.86	3449.11	3496.37
													106

Table 4 .

 4 11: Test results of the general disjunctive model in semi-resumable case.

  Hence, the generalization of the basic model increases the number of variables by N + N Y and the number of constraints by N + 4N Y .

	3502.93 constraints [4.25], 2N X constraints [4.26] and [4.27], 7N Y constraints [4.28]-[4.34], n constraints 3482.84 3509.09 3506.57 3482.83 3539.04 3508.76 3535.94 3568.31 3488.19 3571.41 3567.09 3580.40 3580.05 3574.87 [4.35] and N constraints [4.36].
	1181.50 21.99 Introducing flexibility on durations of unavailability periods leads to 1290 30.93 1409 34.21 1376 28.78 1243 27.95 1712 19.57 1712.50 18.28 1608 14.18 1589 16.93 1677 21.31 1974 34.14 2129.50 38.01 2112 2154.50 39.37 40.61 tional variables p ′ rkl . The number of additional constraints [4.42], [4.43], [4.44], [4.45] and [4.46] 2060 35.61 ∑ m r=1 ∑ mr k=1 v rk addi-are respectively N y , N y , m, m and ∑ m r=1 ∑ mr k=1 v rk .
	930	891	927	980	895.55	1377	1399.41	1380	1320	1320	1300	1320	1306.18	1254.42	1326.52
	2273.56	2230.54	2169.74	2025.93	2296.19	1503.73	2454.36	2315.15	2625.75	2446.70	1923.29	2049.56	2846.19	2512.73	2020.38
	24.06	28.50	36.43	22.49	26.09	20.73	12.48	15.16	16.28	21.17	32.38	35.83	34.35	43.75	29.20
	1339.25	1400.00	1578.00	1496.50	1372.00	1920.00	1864.62	1809.50	1714.00	1871.00	2199.00	2413.00	2269.00	2562.00	2183.00
	1017.00	1001.00	1003.00	1160.00	1014.00	1522.00	1632.00	1535.22	1435.00	1475.00	1487.00	1548.00	1489.50	1441.00	1546.00
	2452.69	2388.3	2504.31	2615.14	2453.44	3058.65	1986.22	2078.23	1818.02	1966.90	2717.59	2508.09	1758.44	2090.79	2567.89
	21.58	20.98	32.82	10.34	27.98	14.43	15.47	10.04	11.01	15.14	25.82	30.05	35.74	33.67	28.31
	1378.50	1452.75	1625.50	1503.50	1406.00	1906.00	1957.50	1825.25	1780.00	1938.37	2107.00	2366.00	2271.00	2214.00	2272.25
		1148.00	1092.00	1348.00	1012.64	1631.00	1654.75	1642.00	1584.00	1645.00	1563.00	1655.00	1459.31	1468.50	1629.00
		5m10n2	5m10n3	5m10n4	5m10n5	10m10n1	10m10n2	10m10n3	10m10n4	10m10n5	10m15n1	10m15n2	10m15n3	10m15n4	10m15n5

  ∀h rk , ∀Oij

	pij ≥ 0 S rk ≥ ES rk S rk ≤ LS rk Cmax ≥ Cin Cij ≥ 0	s.t. a = Mr i = 1, .., n; j = 1, .., ni(4.66) (4.62) i = 1, .., n; j = 1, .., ni(4.67) r = 1, .., m; k = 1, .., mr (4.68) r = 1, .., m; k = 1, .., mr (4.69)

i i = 1, .., n (4.63) Cij ≥ tij + pij i = 1,

.., n; j = 1, .., ni(4.64) tij ≥ 0 i = 1, .., n; j = 1, .., ni(4.65) 111

  ∀h rk , ∀Oij The objective is makespan minimization ([4.47]). Constraint [4.48] expresses the fact that only one machine is chosen from A ij to process operation O ij . Constraint [4.49] determines the value of the processing time of operation O ij depending on the selected machine. Conjunctive Constraint [4.50] ensures the respect of job routings (it is similar to Constraint [4.25]). Disjunctive Constraints [4.51] and [4.52] guarantee the non overlapping of operations O ij and O i ′ j ′

			s.t. a = Mr	(4.71)
	Z ij,rk ∈ {0, 1}	∀a ∈ Aij , ∀h rk , ∀Oij
			s.t. a = Mr	(4.72)
	W ij,rk ∈ {0, 1}	∀a ∈ Aij , ∀h rk , ∀Oij
			s.t. a = Mr	(4.73)
	x	a ij ∈ {0, 1}	i = 1, .., n; j = 1, .., ni,
			∀a ∈ Aij	(4.74)

2 Model extensions except

  1 (they replace Constraints [4.26] and [4.27]). Similarly, Constraints [4.53] and [4.54] ensure that operation O ij is either processed before or after unavailability period h rk when O ij is processed on machine M a (x a i ′ j ′ = 1); otherwise x a i ′ j ′ = 0 and then the constraints are always satisfied. Disjunctive constraints are associated to resource constraints which express the fact that, when a machine is available, it can process only one operation at a time (they replace Constraints [4.28] and [4.29]). Constraints [4.55]) through [4.58]) replace Constraint [4.30]). They define the values of Z ij,rk and W ij,rk . Constraints [4.59] and [4.60] provide the value of the completion date of operation O ij . Constraints [4.54] and [4.61] (which replace Constraints [4.29] and [4.33]) express inequalitiest ij +ε ≤ S rk ≤ t ij +p ij -ε. Constraint [4.62] implies that, if operation O ij is processed on machine M a (x a i ′ j ′ = 1), then it precedes unavailability period h rk and then it precedes all unavailability periods which follow h rk . Moreover, if it follows unavailability period h r(k+1) , then it follows all unavailability periods which precede h r(k+1) . Constraint [4.63] indicates that the schedule cannot be completed before the end of the last operation of each job. Constraint [4.64] provide a bound on completion date of operation (it is similar to constraint [4.36]). for disjunctive constraints. Indeed the disjunctive constraints [4.26] and [4.27] associated to operations O ij and O i ′ j ′ are multiplied by x a ij ×x a i ′ j ′ which make them valid only when x a ij = 1 and x a i ′ j ′ = 1 (operations O ij and O i ′ j ′ to be processed on machine M a ). And disjunctive constraints [4.28] through [4.34] associated to operation O ij and unavailability period h rk are multiplied by x a ij which make them valid only when x a ij = 1 (operation O ij to be processed on machine M a on which unavailability period h rk is planned). Hence the model is non-linear since these constraints induce multiplication of variables which is a problem if we intend to solve the model by integer linear programming solvers.

Gao et al. [GSS06]

propose a formulation for the non-preemptive flexible job shop scheduling problem with non-fixed availability constraints. It is quite similar to the precedent formulation 4.

Table 4 .

 4 12: Test results for for non-preemptive disjunctive formulation for ∑ C i minimization.

	Problem	Linear relaxation	Fixed unavailability periods	Non-fixed unavailability periods
		Bound	CPU	Best	Best	Gap	CPU	Best	Best	Gap	CPU
			(sec)	bound	solution	(%)	(sec)	bound	solution	(%)	(sec)
	5m5n1		0	3652	3652	0	0.04	3552	3552	0	0.06
	5m5n2		0	4669	4669	0	0.01	4412	4412	0	0.01
	5m5n3		0	4008	4008	0	0.04	3968	3968	0	0.12
	5m5n4		0	4584	4584	0	0.06	4242	4242	0	0.06
	5m5n5		0	4663	4663	0	0.07	4565	4565	0	0.26
	5m10n1		0	9850	9850	0	672.04	9535	9535	0	2563.70
	5m10n2		0.01	10637	10637	0	167.89	10256	10256	0	1913.03
	5m10n3		0.01	10809.40 11072	2.37	3600	9316.36	10997	15.28	3600
	5m10n4		0.01	10630	10630	0	565	10491	10491	0	679.57
	5m10n5		0.01	9706	9706	0	1566.81	9101	9101	0	194.75
	10m10n1		0.01	15629.28 16878	7.40	3600	15081.50 16085	6.24	3600
	10m10n2		0.01	15777	15777	0	547.82	15200	15200	0	2151.56
	10m10n3		0.01	15352	15352	0	646.60	14469.06 15164	4.58	3600
	10m10n4		0.01	14715	15374	4.29	3600	13401.79 15155	11.57	3600
	10m10n5		0.01	15625	15625	0	1237.39	14448.85 15136	4.54	3600
	10m15n1		0.03	20750.43 27199	23.71	3600	19967.56 27221	26.65	3600
	10m15n2		0.03	22652.38 29186	22.39	3600	20766.35 27977	25.77	3600
	10m15n3		0.03	u				u
	10m15n4		0.03	20860.50 27423	23.93	3600	19066.68 27143	29.75	3600
	10m15n5		0.03	21465.87 28609	24.97	3600	20484.81 28312	27.65	3600
					u: unknown

Table 4 .

 4 13: Test results for for resumable disjunctive formulation for ∑ C i minimization.

	Problem		Fixed unavailability periods			Non-fixed unavailability periods
		Best	Best	Gap	CPU	Best	Best	Gap	CPU
		bound	solution	(%)	(sec)	bound	solution	(%)	(sec)
	5m5n1	3577		0	0.32	3356	3356	0	0.90
	5m5n2	4385		0	0.12	4174	4174	0	0.12
	5m5n3	3912		0	0.39	3892	3892	0	1.98
	5m5n4	4136		0	0.23	4136	4136	0	1.04
	5m5n5	4443		0	1.23	4417	4417	0	2.37
	5m10n1	8187.32		14.80	3600	7587.13	9484	20.00	3600
	5m10n2	9211.53		11.44	3600	8541.57	10364	17.58	3600
	5m10n3	9423.79		15.33	3600	8412.82	10710	21.45	3600
	5m10n4	8768.07		16.70	3600	8509.98	10439	18.48	3600
	5m10n5	8509.46		9.54	3600	8050.77	9101	11.54	3600
	10m10n1	14122.53		13.54	3600	13556.42	16397	17.32	3600
	10m10n2	13753.73		10.42	3600	13369.14	15190	11.99	3600
	10m10n3	13872.90		9.62	3600	13368.79	15261	12.40	3600
	10m10n4	12727.49		17.48	3600	12312.27	14876	17.23	3600
	10m10n5	13601.78		13.19	3600	12861.07	15273	15.79	3600
	10m15n1	19289.33		28.58	3600	18512.37	26762	30.83	3600
	10m15n2	19742.42		32.51	3600	19030.30	28685	33.66	3600
	10m15n3	18537.02		31.84	3600	17812.63	27221	34.56	3600
	10m15n4	18553.83		32.61	3600	18075.02	27264	33.70	3600
	10m15n5	19514.55		29.30	3600	19128.66	28000	31.68	3600

Table 5 .

 5 1: Rules rank for OpH2 and all availability models.

	Rank		Cmax	∑	Ci
		Fixed unavailability	Flexible unavailability	Fixed unavailability	Flexible unavailability
		periods	periods	periods	periods
	1	1	2	1	2
	2	5	1	5 or 6	4
	3	6	4	5 or 6	1
	4	4	3	2 or 4	5 or 6
	5	2 or 3	6	3	5 or 6
	6	2 or 3	5	2 or 4	3

Table 5 .

 5 2: Test results for fixed unavailability periods with disjunctive MIP model.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min	Min	Min	Min	Min	Min	Min		Min
	5m5n1	895*	3652*	845*	3577*	895*	3652*	866.62*	3613.00*
	5m5n2	1096*	4669*	997*	4385*	1096*	4669*	1042.25*	4601.00*
	5m5n3	1070*	4008*	1020*	3912*	1070*	4008*	1046.50*	3938.00*

Table 5 .

 5 3: Test results for flexible unavailability periods with disjunctive MIP model.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min	Min	Min	Min	Min	Min	Min		Min
	5m5n1	825*	3552*	825*	3356*	825*	3352*	825.00*	3366.50*
	5m5n2	1076*	4412*	977*	4174*	1076*	4412*	1000.00*	4218.25*

Table 5 .

 5 4: Test results for fixed unavailability periods with JpH heuristic and 1000 iterations.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min		Min	Min		Min	Min		Min	Min	Min
	5m5n1	961∼		3748∼	891∼		3665∼	985∼		3748∼	925∼	3665∼
	5m5n2	1112∼	4669*	1080∼	4438∼	1112∼	4669*	1096∼	4601*

Table 5 .

 5 5: Test results for flexible unavailability periods with JpH heuristic and 1000 iterations.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min		Min	Min		Min	Min		Min	Min	Min
	5m5n1	825*		3597∼	825*		3597∼	825*		3597∼	825*	3597∼
	5m5n2	1076*		4468∼	1076∼	4468∼	1076*		4468∼	1076∼	4468∼
	5m5n3	1137∼	3968∼	1137∼	3968∼	1137∼	3968∼	1137∼	3968∼
	5m5n4	1108*		4242∼	1108∼	4242∼	1108*		4242*	1108*	4242∼

Table 5 .

 5 6: Test results for fixed unavailability periods with OpH1 heuristic and 1000 iterations.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min	Min	Min	Min	Min	Min	Min		Min
	5m5n1	895*	3671∼	845*	3620∼	895*	3671∼	866.62*	3653.75∼
	5m5n2	1096*	4706∼	997*	4385*	1096*	4706∼	1042.25*	4604.5∼

Table 5 .

 5 7: Test results for flexible unavailability periods with OpH1 heuristic and 1000 iterations.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min		Min	Min		Min	Min		Min	Min	Min
	5m5n1	825*		3576∼	825*		3576∼	825*		3576∼	825*	3576∼
	5m5n2	1076*		4476∼	1076∼	4476∼	1076*		4476∼	1076∼	4476∼
	5m5n3	1034*		4088∼	1034∼	4088∼	1034*		4088∼	1034∼	4088∼
	5m5n4	1127∼	4332∼	1127∼	4332∼	1127∼	4332∼	1127∼	4332∼
	5m5n5	1182*		4632∼	1182∼	4632∼	1182*		4632∼	1182∼	4632∼
	5m10n1	1437		11088	1437∼	11088	1437∼	13059.55	1437∼	11088
	5m10n2	1481∼	12026	1475∼	12026	1490∼	13615.21	1475∼	12026
	5m10n3	1632∼	12667	1632∼	12667	1632∼	12667	1632∼	12667

Table 5 .

 5 8: Test results for fixed unavailability periods with OpH2 heuristic and the best solutions through all the rules.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min	Min	Min	Min	Min	Min	Min	Min
	5m5n1∼	895*	4094	895∼	3959	895*	4094	895∼	4004.5

Table 5 .

 5 9: Test results for flexible unavailability periods with OpH2 heuristic and the best solutions through all the rules.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min		Min	Min		Min	Min		Min	Min	Min
	5m5n1∼	825*		3668∼	825*		3668∼	825*		3668∼	825*	3668∼
	5m5n2∼	1076*		4747∼	1076∼	4747	1076*		4747∼	1076∼	4747
	5m5n3∼	1042∼	4370∼	1042∼	4370	1042∼	4370∼	1042∼	4370
	5m5n4∼	1217∼	4335∼	1217∼	4335∼	1217∼	4335∼	1217∼	4335∼
	5m5n5∼	1211∼	4927∼	1211∼	4928	1211∼	4928∼	1211∼	4928∼
	5m10n1∼	1540		10992	1540		10992	1540		10992	1540	10992

Table 5 .

 5 10: Test results for modification of initial position of unavailability periods in case of resumable operations and flexible unavailability periods with OpH2 heuristic and through all the rules.

	Problem	No modification of	Unavailability period	Unavailability period	disjunctive MIP
		initial position of	placed at the end	placed at the beginning
		unavailability period Cmax ∑ Ci	of its time window Cmax ∑ Ci	of its time window Cmax ∑ Ci	Cmax	∑	Ci
		Min	Min	Min	Min	Min	Min	Min	Min
	5m5n1	825*	3668∼	825*	3668∼	910∼	3650∼	825*	3356*
	5m5n2	1076∼	4747	1076∼	4687	977*	4320∼	977*	4174*
	5m5n3	1042∼	4370	1100∼	4370	1042∼	4296∼	1020*	3892*
	5m5n4	1217∼	4335∼	1217∼	4335∼	1157∼	4136*	1108*	4136*
	5m5n5	1211∼	4928	1211∼	4928	1160∼	4790∼	1108*	4417*
	5m10n1	1540	10992	1540	10992	1533	10521	1316	9484

Table 5 .

 5 11: Test results for resumable operations and flexible unavailability periods for orders ABC and CAB in OIp procedure with OpH2 heuristic and through all the rules.

	Problem			OIp procedure			disjunctive MIP
		Cmax	order ABC ∑ Ci	Cmax	order CAB ∑ Ci	Cmax	∑	Ci
		Min		Min	Min		Min	Min	Min
	5m5n1	825*		3668∼	845∼		3768	825*	3356*
	5m5n2	1076∼	4747	1096		4777	977*	4174*
	5m5n3	1042∼	4370	1062∼	4667	1020*	3892*
	5m5n4	1217∼	4335∼	1237		4435∼	1108*	4136*
	5m5n5	1211∼	4928	1280		5229	1108*	4417*
	5m10n1	1540		10992	1560		11312	1316	9484
		bold: best solution

*: optimal solution ∼: gap between the best solution and the MIP solution ≤ 10% +: better solution than MIP one

Table 5 .

 5 12: Rules rank for MOpH2 and all availability models.

	Rank		Cmax	∑	Ci
		Fixed unavailability	Flexible unavailability	Fixed unavailability	Flexible unavailability
		periods	periods	periods	periods
	1	1	2	1	2
	2	5 or 6	4	4	4
	3	5 or 6	1	6	1
	4	2 or 4	3	5	3
	5	3	5	3	5
	6	2 or 4	6	2	6
			151

Table 5 .

 5 13: Test results for fixed unavailability periods with MOpH1 heuristic and 1000 iterations.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min	Min	Min	Min	Min	Min	Min		Min
	5m5n1	895*	3891∼	845*	3738∼	895*	3891∼	866.62*	3798.5∼

Table 5 .

 5 14: Test results for flexible unavailability periods with MOpH1 heuristic and 1000 iterations.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min	Min	Min		Min	Min	Min	Min	Min
	5m5n1	825*	3668∼	825*		3668∼	825*	3668∼	825*	3668∼
	5m5n2	1076*	4537∼	1076∼	4537∼	1076*	4537∼	1076∼	4537∼
	5m5n3	1034*	4177∼	1034∼	4177∼	1034*	4177∼	1034∼	4177∼

Table 5 .

 5 15: Test results for fixed unavailability periods with MOpH2 heuristic and through all the rules.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min	Min	Min	Min	Min	Min	Min	Min

Table 5 .

 5 16: Test results for flexible unavailability periods with MOpH2 heuristic and through all the rules.

	Problem	Non-preemptive		Resumable	Non-resumable	Semi-resumable
		Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci	Cmax	operations ∑ Ci
		Min		Min	Min		Min	Min		Min	Min	Min
	5m5n1	825*		3668∼	825*		3668∼	825*		3668∼	825*	3668∼
	5m5n2	1076*		4605∼	1076∼	4605∼	1076*		4605∼	1076∼	4605∼
	5m5n3	1070∼	4579	1070∼	4579	1070∼	4579	1070∼	4579
	5m5n4	1235		4335∼	1235		4335∼	1235		4335∼	1235	4335∼
	5m5n5	1211∼	4975∼	1211∼	4975	1211∼	4975∼	1211∼	4975∼

Table 5 .

 5 21: Comparing results for JpH-R2 heuristic and the best values over all the other heuristics.

  ] ensures that one and only one schedule is selected for each job. Constraint [6.3] guarantees that it is never used by more than one operation at each period. The number of variables is |S|, which can quickly become very large, even for small values of n and m. It has respectively n and T × m constraints associated to Constraints [6.2] and [6.3].Note that the criterion can be very general as long as it only depends on each job: sum of the (weighted) completion times ∑ s C s x s ( ∑ s w Ji(s) C s x s ), sum of the (weighted) tardiness ∑

				n	(6.2)
	∑	n J i (s) ∑	a s tj x s ≤ 1	t = 1, .., T ; r = 1, .., m	(6.3)
	s∈S	j=1;mr J i (s)j =r
		x s ∈ {0, 1}	∀s ∈ S	(6.4)
	Constraint [6.2

s T s x s ( ∑ s w Ji(s) T s x s ) and/or earliness

Table 6 .

 6 1: Test results for disjunctive model for initial benchmarks.

	Problem	Disjunctive model
	Linear relaxation		Integer resolution
	Lower	Best	Best	Gap	CPU
	bound	bound	solution	(%)	(sec)
	5m5n1	3652	3652	0	0.04
	5m5n2	4669	4669	0	0.01
	5m5n3	4008	4008	0	0.04
	5m5n4	4584	4584	0	0.06
	5m5n5	4663	4663	0	0.07
	5m10n1	9850	9850	0	672.04
	5m10n2	10637	10637	0	167.89
	5m10n3	10809.40	11072	2.37	3600
	5m10n4	10630	10630	0	565
	5m10n5	9706	9706	0	1566.81
	10m10n1	15629.28	16878	7.40	3600
	10m10n2	15777	15777	0	547.82
	10m10n3	15352	15352	0	646.60
	10m10n4	14715	15374	4.29	3600
	10m10n5	15625	15625	0	1237.39
	10m15n1	20750.43	27199	23.71	3600
	10m15n2	22652.38	29186	22.39	3600
	10m15n3	u
	10m15n4	20860.50	27423	23.93	3600
	10m15n5	21465.87	28609	24.97	3600
			u: unknown

Non-preemptive job shop problem with fixed resource availability periods

  Table 6.2: Test results for Column Generation model when adding multiple improving columns per job at each iteration in case of initial benchmarks, one initial solution and different schedule lengths.

	Problem	Initial	Schedule		Column Generation Model
		solution length	(multiple improving columns per job at each iteration)
				Linear Relaxation			Branch-and-bound
			Lower	Number	Number	CPU	Best	Best	Gap	CPU
				of	of
			bound	iterations columns (sec)	bound	solution (%)	(sec)
	5m5n1	4327	3664.5	30	11890	121.01 3856	3856	0	2930.63
		4327	3590.75 12	8371	11.70	3672	3672	0	704.34
	5m5n2	5347	4561	8	5021	4.34	5084	5084	0	197.57
		5347	4561	8	6115	5.84	4934	4934	0	809.60
	5m5n3	6053	3953.33 12	8089	9.75	4082.58 5081	21.54	3600
		6053	3915.79 15	9945	13.85	4008*	4008*	0	32.32
	5m5n4	4842	4576	21	11825	46.23	4591	4591	0	25.95
		4842	4576	17	8243	17.64	4618	4618	0	26.23
	5m5n5	5536	4493.2	10	8910	9.46	4868	4868	0	1738.38
		5536	4493.2	12	8433	9.46	4869	4869	0	3600
	5m10n1	13375	OFM
		13375	OFM
	5m10n2	13812	OFM
		13812	OFM
	5m10n3	15146	OFM
		15146	OFM
	5m10n4	14700	OFM
		14700	OFM
	5m10n5	12870	OFM
		12870	OFM
	10m10n1	19991	OFM
		19991	OFM
	10m10n2	20881	OFM
		20881	OFM
	10m10n3	19262	OFM
		19262	OFM
	10m10n4	19315	OFM
		19315	OFM
	10m10n5	19322	OFM
		19322	OFM
	10m15n1	35917	OFM
		35917	OFM
	10m15n2	36986	OFM
		36986	OFM
	10m15n3	33121	OFM
		33121	OFM
	10m15n4	34244	OFM
		34244	OFM
	10m15n5	36390	OFM
		36390	OFM
		*: optimal solution
		bold: best value
		OFM: Out of memory

Table 6 .

 6 3: Test results for Column Generation model when adding one improving column per job at each iteration in case of initial benchmarks, one initial solution and different schedule lengths.

	Problem	Initial	Schedule		Column Generation Model
		solution length	(One improving column per job at each iteration)
				Linear Relaxation			Branch-and-bound
			Lower	Number	Number	CPU	Best	Best	Gap	CPU
				of	of
			bound	iterationscolumns (sec)	bound	solution (%)	(sec)
	5m5n1	4327	3664.5	318	1203	18.60	4327	4327	0	10.01
		4327	3590.75 177	763	37.95	3653	3653	0	1.76
	5m5n2	5347	4561	201	681	16.90	4706	4706	0	1.34
		5347	4561	179	663	30.65	4766	4766	0	6.01
	5m5n3	6953	3953.33 116	479	11.34	6053	6053	0	6.04
		6953	3915.79 147	556	23.82	6053	6053	0	28.06
	5m5n4	4282	4576	301	1212	35.76	4584*	4584*	0	0.56
		4282	4576	310	1283	64.39	4676	4676	0	17.65
	5m5n5	5536	4493.2	318	1352	45.42	4915	4915	0	113.07
		5536	4493.2	228	930	40.73	4663*	4663*	0	12.37
	5m10n1	13375	OFM
		13375	OFM
	5m10n2	13812	OFM
		13812	OFM
	5m10n3	15146	OFM
		15146	OFM
	5m10n4	14700	OFM
		14700	OFM
	5m10n5	12870	OFM
		12870	OFM
	10m10n1	19991	OFM
		19991	OFM
	10m10n2	20881	OFM
		20881	OFM
	10m10n3	19262	OFM
		19262	OFM
	10m10n4	19315	OFM
		19315	OFM
	10m10n5	19322	OFM
		19322	OFM
	10m15n1	35917	OFM
		35917	OFM
	10m15n2	36986	OFM
		36986	OFM
	10m15n3	33121	OFM
		33121	OFM
	10m15n4	34244	OFM
		34244	OFM
	10m15n5	36390	OFM
		36390	OFM

*: optimal solution italic: near optimal solution bold: best value OFM: Out of memory

Table 6 .

 6 1 summarizes the test results for the disjunctive formulation. The first column is the name of the benchmark which is of type XmY nZ, where X, Y and Z are respectively the number of machines, number of jobs and number of the benchmarks in the class. Column 2 gives the lower bound of the linear relaxation of the model; whereas Columns 3 to 6 give the results for the mixed integer linear program. Column 3 corresponds to the best lower bound, Column 4 to the objective function of the best solution, Column 5 to the gap (expressed in %), and Column 6 to the CPU time (expressed in seconds). Table6.2 (resp. 6.3) shows the test results for the Column Generation model when adding multiple improving columns per job at each iteration in case of initial benchmarks, one initial solution and different schedule lengths. Column 1 is the name of the instance; Column 2 shows the initial solution; Column 3 is the schedule length. Columns 4 to 7 correspond to the test results of the linear relaxation of the restricted master problem. Columns 8 to 11 correspond to the test results of the branch-and-bound procedure. Column 4 shows the lower bound, Column 5 the number of iterations, Column 6 the number of columns, and Column 7 the CPU time (in seconds). Column 8 shows the lower bound, Column 9 the objective function of the best solution, Column 10 the gap (in %), and Column 11 the CPU time (seconds). For each instance, two different schedule lengths are tested for the same initial solution.

Table 6 .

 6 4: Test results for disjunctive model for modified benchmarks (scale /10).

	Problem		Disjunctive model
		Linear relaxation		Integer resolution
		Lower	Best	Best	Gap	CPU
		bound	bound	solution	(%)	(sec)
	5m5n1div10	219	367	367	0	0.93
	5m5n2div10	265	470	470	0	0.03
	5m5n3div10	252	401	401	0	0.07
	5m5n4div10	260	460	460	0	0.04
	5m5n5div10	253	470	470	0	0.10
	5m10n1div10	476	922.09	974	5.33	3600
	5m10n2div10	499	1055	1055	0	890.64
	5m10n3div10	521	1098	1112	1.26	3600
	5m10n4div10	527	1059	1059	0	1133.06
	5m10n5div10	496	960	960	0	753.75
	10m10n1div10	1051	1545.24	1686	8.35	3600
	10m10n2div10	1037	1558	1558	0	2455.08
	10m10n3div10	1005	1540	1540	0	1352.06
	10m10n4div10	954	1453.36	1519	4.32	3600
	10m10n5div10	1001	1551	1551	0	897.75
	10m15n1div10	1488	2074.22	2768	25.06	3600
	10m15n2div10	1544	2189.98	2969	26.24	3600
	10m15n3div10	1474	2028.45	2716	25.31	3600
	10m15n4div10	1499	2003.79	2681	25.26	3600
	10m15n5div10	1553	2125.50	2771	23.29	3600

Non-preemptive job shop problem with fixed resource availability periods

  Table 6.5: Test results for Column Generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /10), different initial solutions and one schedule length -Part 1.

	Problem	Schedule Initial	Initial			Column Generation Model
		length	Solution solution		(multiple improving columns per job at each iteration)
			number			Linear Relaxation			Branch-and-bound
					Lower	Number	Number	CPU	Best	Best	Gap	CPU
						of	of
					bound	iterations columns (sec)	bound	solution (%)	(sec)
	5m5n1div10	150	1	407	359.53 11	612	0.09	374	374	0	0.78
		150	2	417	359.53 11	818	0.10	368	368	0	0.51
		150	3	409	359.53 14	677	0.12	376	376	0	2.84
		150	4	1,2,3	359.53 14	677	0.12	376	376	0	2.84
	5m5n2div10	150	1	510	459.5	9	726	0.07	473	473	0	0.34
		150	2	571	459.5	10	767	0.09	480	480	0	0.71
		150	3	474	459.5	11	632	0.07	474	474	0	0.09
		150	4	1,2,3	459.5	10	558	0.07	474	474	0	0.09
	5m5n3div10	150	1	560	387.33 10	876	0.09	401*	401*	0	0.15
		150	2	522	387.33 10	787	0.09	401*	401*	0	0.07
		150	3	488	387.33 12	842	0.10	401*	401*	0	0.15
		150	4	1,2,3	387.33 11	876	0.15	401*	401*	0	0.15
	5m5n4div10	150	1	585	459.4	13	762	0.12	463	463	0	0.09
		150	2	546	459.4	11	813	0.12	463	463	0	0.07
		150	3	572	459.4	12	988	0.14	463	463	0	0.40
		150	4	1,2,3	459.4	13	706	0.10	463	463	0	0.23
	5m5n5div10	150	1	569	446.31 10	720	0.09	478	478	0	2.60
		150	2	575	446.31 10	777	0.09	478	478	0	1.56
		150	3	551	446.31 9	655	0.07	494	494	0	2.51
		150	4	1,2,3	446.31 9	707	0.07	478	478	0	3.62
	5m10n1div10 200	1	1439	937	25	5452	3.21	937.78 1073	12.72	3600
		200	2	1354	937	21	4724	2.81	937.83 1043	10.18	3600
		200	3	1214	937	26	5001	2.96	937.82 1122	16.56	3600
		200	4	1,2,3	937	27	4402	2.62	937.71 1075	12.89	3600
	5m10n2div10 200	1	1380	980.77 34	6191	5.73	981.56 1138	13.87	3600
		200	2	1365	980.77 42	6615	6.17	981.48 1167	16.03	3600
		200	3	1322	980.77 34	6226	5.07	981.55 1145	14.40	3600
		200	4	1,2,3	980.77 30	6307	4.54	981.53 1170	16.25	3600
	5m10n3div10 200	1	1420	1067.55 20	4287	1.84	1070.47 1271	15.90	3600
		200	2	1539	1067.55 25	4584	2.04	1069.63 1159	7.78	3600
		200	3	1430	1067.55 21	4251	2.14	1070.03 1269	15.80	3600
		200	4	1,2,3	1067.55 21	4282	1.64	u			3600
	5m10n4div10 200	1	1352	1031.62 25	4399	2.25	1033.35 1352	23.74	3600
		200	2	1309	1031.62 34	4574	2.78	1032.88 1191	13.39	3600
		200	3	1476	1031.62 24	4294	2.09	1034.16 1367	24.53	3600
		200	4	1,2,3	1031.63 20	4469	1.82	u			3600
	5m10n5div10 200	1	1375	887.35 31	5739	5.78	887.79 1375	35.69	3600
		200	2	1207	887.35 31	5975	6.06	887.91 1117	20.69	3600
		200	3	1270	887.35 29	5617	5.01	887.87 1270	30.33	3600
		200	4	1,2,3	887.35 29	5996	6.10	887.78 1115	20.56	3600
	bold: best value

*: optimal solution italic: near optimal solution u: unknown

Table 6 .

 6 6: Test results for Column Generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /10), different initial solutions and one schedule length -Part 2.

	Problem	Schedule Initial	Initial			Column Generation Model
		length	Solution solution		(multiple improving columns per job at each iteration)
			number			Linear Relaxation			Branch-and-bound
					Lower	Number	Number	CPU	Best	Best	Gap	CPU
						of	of
					bound	iterations columns (sec)	bound	solution (%)	(sec)
	10m10n1div10 250	1	2144	1523.3 72	10275	38.26	1523.63 2144	29.07	3600
		250	2	2040	1523.3 53	11145	37.23	1523.63 2040	25.44	3600
		250	3	2071	1523.3 57	10459	35.68	1523.62 2071	26.56	3600
		250	4	1,2,3	1523.3 58	10086	34.82	1523.63 2144	29.07	3600
	10m10n2div10 250	1	2152	1475.36 34	8955	32.25	1476.85 2152	31.52	3600
		250	2	1988	1475.36 49	10338	40.59	1476.37 1988	26.24	3600
		250	3	1907	1475.36 44	9388	33.39	1476.25 1907	22.71	3600
		250	4	1,2,3	1475.36 52	9765	35.32	1477.56 2142	31.49	3600
	10m10n3div10 250	1	1944	1468.28 33	8713	24.70	1469	1944	24.56	3600
		250	2	1822	1468.28 32	9296	24.85	1469.16 1822	19.47	3600
		250	3	2053	1468.28 31	9769	25.12	1468.84 2053	28.59	3600
		250	4	1,2,3	1468.28 31	9217	24.17	1469.09 1944	24.56	3600
	10m10n4div10 250	1	1939	1384.6 31	9815	28.48	1385.29 1939	28.70	3600
		250	2	1914	1384.6 31	9971	29.03	1385.04 1914	27.77	3600
		250	3	1883	1384.6 33	10176	29.23	1385.12 1883	26.58	3600
		250	4	1,2,3	1384.6 34	10090	27.26	1385.16 1939	28.71	3600
	10m10n5div10 250	1	1958	1443.48 36	9432	35.20	1443.80 1958	26.40	3600
		250	2	1801	1443.48 38	9632	33.85	1443.04 1801	19.93	3600
		250	3	1877	1433.48 35	9086	29.29	1443.93 1877	23.20	3600
		250	4	1,2,3	1443.48 41	9245	34.01	1444.01 1958	26.39	3600
	10m15n1div10 300	1	3429	2321.09 77	34833	1082.66 2321.09 3429	32.45	3600
		300	2	3507	2321.09 85	34534	1029.75 2321.09 3507	33.96	3600
		300	3	3494	2321.09 77	34766	1042.19 2321.12 3494	33.71	3600
		300	4	1,2,3	2321.09 80	36269	1139.97 2321.10 3429	32.45	3600
	10m15n2div10 300	1	3880	2630.76 38	21166	263.89 2630.76 3880	32.32	3600
		300	2	3848	2630.76 43	21061	2615.76 2630.76 3848	31.76	3600
		300	3	3698	2630.76 40	21664	254.71 2630.76 3698	28.98	3600
		300	4	1,2,3	2630.76 39	22386	256.34 2630.76 3880	32.32	3600
	10m15n3div10 300	1	3524	2403.45 53	25862	387.12 2403.45 3524	31.93	3600
		300	2	3693	2403.45 55	26278	355.25 2403.50 3693	35.06	3600
		300	3	3474	2403.45 63	27179	387.17 2403.50 3474	30.95	3600
		300	4	1,2,3	2403.45 64	28235	389.65 2403.60 3693	34.78	3600
	10m15n4div10 300	1	3583	2341.9 43	27458	581.81 2341.90 3583	34.78	3600
		300	2	3437	2341.9 43	28186	584.09 2341.90 3437	32.00	3600
		300	3	3348	2341.9 44	27433	582.12 2341.90 3348	30.19	3600
		300	4	1,2,3	2341.9 47	28199	608.70 2341.91 3583	34.78	3600
	10m15n5div10 300	1	3520	2436.32 74	34924	1055.28 2436.32 3520	30.92	3600
		300	2	3590	2436.32 74	37271	1118.23 2436.33 3590	32.27	3600
		300	3	3439	2436.32 74	35781	1004.11 2436.32 3439	29.28	3600
		300	4	1,2,3	2436.32 81	36931	1065.73 2436.33 3520	30.92	3600
		bold: best value

Non-preemptive job shop problem with fixed resource availability periods

  Table 6.7: Test results for Column Generation model when adding one improving column per job at each iteration in case of modified benchmarks (scale /10), different initial solutions and one schedule length -Part 1.

	Problem	Schedule Initial	Initial			Column Generation Model
		length	Solution solution		(One improving column per job at each iteration)
			number			Linear Relaxation			Branch-and-bound
					Lower	Number	Number	CPU	Best	Best	Gap	CPU
						of	of
					bound	iterations columns (sec)	bound	solution (%)	(sec)
	5m5n1div10 150	1	407	359.53 50	232	0.23	369	369	0	0.53
		150	2	417	359.53 61	247	0.28	371	371	0	0.54
		150	3	409	359.53 53	208	0.23	369	369	0	0.26
	5m5n2div10 150	1	510	459.5	47	199	0.18	474	474	0	0.14
		150	2	571	459.5	41	171	0.17	480	480	0	0.12
		150	3	474	459.5	29	105	0.10	474	474	0	0.03
	5m5n3div10 150	1	560	387.33 40	181	0.17	475	475	0	0.62
		150	2	522	387.33 65	307	0.28	472	472	0	1.18
		150	3	488	387.33 35	150	0.14	401*	401*	0	0.04
	5m5n4div10 150	1	585	459.4	98	407	0.51	469	469	0	0.39
		150	2	546	459.4	82	348	0.35	463	463	0	0.04
		150	3	572	459.4	90	366	0.42	465	465	0	0.18
	5m5n5div10 150	1	569	446.31 53	250	0.23	498	498	0	0.53
		150	2	575	446.31 48	208	0.20	508	508	0	0.51
		150	3	551	446.31 56	242	0.23	508	508	0	0.67
	5m10n1div10 200	1	1439	937	441	3253	20.23	997	1037	2.90	3600
		200	2	1354	937	400	2873	16.58	1354	1354	0	3480.05
		200	3	1214	937	466	3616	23.39	937.63 1058	11.48	3600
	5m10n2div10 200	1	1380	980.77 613	5075	46.20	1370	1370	0	2283.83
		200	2	1365	980.77 499	4145	30.14	1167	1167	0	1336.03
		200	3	1322	980.77 477	4179	30.14	981.62 1310	25.26	3600
	5m10n3div10 200	1	1420	1067.55 261	2245	9.96	1187	1187	0	267.39
		200	2	1539	1067.55 272	2429	9.96	1529	1529	0	3348.97
		200	3	1430	1067.55 347	3149	19.39	1069.36 1430	25.40	3600
	5m10n4div10 200	1	1352	1031.62 404	2973	16.64	1352	1352	0	1986.88
		200	2	1309	1031.62 681	4595	1021.62 1034.27 1279	19.09	3600
		200	3	1476	1031.62 408	2892	13.85	1034.35 1476	30.13	3600
	5m10n5div10 200	1	1375	887.35 592	4958	46	918.87 1375	33.45	3600
		200	2	1207	887.35 650	5453	57.35	887.81 1206	26.60	3600
		200	3	1270	887.35 600	4756	43.14	887.64 1270	30.35	3600
		bold: best value
		*: optimal solution

Table 6 .

 6 8: Test results for Column Generation model when adding one improving column per job at each iteration in case of modified benchmarks (scale /10), different initial solutions and one schedule length -Part 2.

	Problem	Schedule Initial	Initial			Column Generation Model
		length	Solution solution		(One improving column per job at each iteration)
			number			Linear Relaxation			Branch-and-bound
					Lower	Number	Number	CPU	Best	Best	Gap	CPU
						of	of
					bound	iterations columns (sec)	bound	solution (%)	(sec)
	10m10n1div10 250	1	2144	1523.3 885	6931	224.89 1524.54 2144	29.03	3600
		250	2	2040	1523.3 1176	9282	446.73 1523.70 2040	25.43	3600
		250	3	2071	1523.3 1060	7656	259.14 1523.72 2071	26.55	3600
	10m10n2div10 250	1	2152	1475.36 777	6714	245.14 1478.29 2152	31.45	3600
		250	2	1988	1475.36 1141	9866	600.23 1477.38 1988	26.19	3600
		250	3	1907	1475.36 713	6487	230.06 1477.71 1907	22.63	3600
	10m10n3div10 250	1	1944	1468.28 957	7780	385.62 1473.23 1944	24.34	3600
		250	2	1822	1468.28 828	6799	264.43 1468.80 1822	19.49	3600
		250	3	2053	1468.28 950	7376	305.92 1468.93 2053	28.59	3600
	10m10n4div10 250	1	1939	1384.6 908	8149	346.20 1386	1939	28.67	3600
		250	2	1914	1384.6 948	8515	341.18 1385.03 1914	27.78	3600
		250	3	1883	1384.6 906	8418	345.26 1385.11 1883	26.58	3600
	10m10n5div10 250	1	1958	1443.48 1147	9421	414.28 1444.11 1958	26.38	3600
		250	2	1801	OFM
		250	3	1877	1443.48 905	7855	348.45 1443.95 1877	23.19	3600
	10m15n1div10 300	1	3429	OFM
		300	2	3507	OFM
		300	3	3494	OFM
	10m15n2div10 300	1	3880	OFM
		300	2	3848	OFM
		300	3	3698	OFM
	10m15n3div10 300	1	3524	OFM
		300	2	3693	OFM
		300	3	3474	OFM
	10m15n4div10 300	1	3583	OFM
		300	2	3437	OFM
		300	3	3348	OFM
	10m15n5div10 300	1	3520	OFM
		300	2	3590	OFM
		300	3	3439	OFM
		bold: best value
		OFM: Out of memory

Table 6 .

 6 9: Test results for Column Generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /10), one initial solution and different schedule lengths -Part 1.

	Problem	Initial	Schedule			Column Generation Model
		solution length		(multiple improving columns per job at each iteration)
					Linear Relaxation			Branch-and-bound
				Lower	Number	Number	CPU	Best	Best	Gap	CPU
					of	of
				bound	iterations columns (sec)	bound	solution (%)	(sec)
	5m5n1div10	407	150	359.53	11	612	0.09	374	374	0	0.78
		407	105	363.5	10	526	0.06	374	374	0	0.26
		407	200	359.53	10	624	0.12	368	368	0	0.5
		407	400	359.53	10	759	0.34	369	369	0	0.87
	5m5n2div10	510	150	459.5	9	726	0.07	473	473	0	0.34
		510	110	467	11	459	0.06	510	510	0	0.14
		510	200	459.5	12	912	0.15	471	471	0	0.42
		510	400	459.5	9	918	0.31	472	472	0	0.39
	5m5n3div10	560	150	387.33	10	876	0.09	401*	401*	0	0.15
		560	137	387.33	9	838	0.07	401*	401*	0	0.20
		560	200	387.33	13	1176	0.17	401*	401*	0	0.26
		560	400	387.33	11	1735	0.40	427	427	0	1.90
	5m5n4div10	585	150	459.4	13	762	0.12	463	463	0	0.09
		585	139	459.4	11	699	0.10	463	463	0	0.32
		585	200	459.4	11	920	0.15	463	463	0	0.25
		585	400	459.4	11	1396	0.48	460*	460*	0	0.07
	5m5n5div10	569	150	446.31	10	720	0.09	478	478	0	2.60
		569	134	446.31	9	639	0.06	478	478	0	0.93
		569	200	446.31	9	899	0.12	478	478	0	2.07
		569	400	446.31	11	1431	0.42	478	478	0	1.85
	5m10n1div10	1439	200	937	25	5452	3.21	937.78	1073	12.72	3600
		1439	180	937	26	5454	3.48	937.58	1083	13.55	3600
		1439	250	937	28	5928	3.95	937.85	1089	14.01	3600
		1439	450	937	24	6835	5.54	937.75	1147	18.40	3600
	5m10n2div10	1380	200	980.77	34	6191	5.73	981.56	1138	13.87	3600
		1380	164	981.10	36	6134	5	981.87	1380	29.06	3600
		1380	250	980.77	39	7164	6.87	981.54	1141	14.10	3600
		1380	450	980.77	37	8499	8.78	981.66	1194	17.93	3600
	5m10n3div10	1420	200	1067.55 20	4287	1.84	1070.47 1271	15.90	3600
		1420	189	1067.55 20	4325	1.82	1070.90 1420	24.76	3600
		1420	250	1067.55 19	4290	1.84	1068.54 1194	10.60	3600
		1420	450	1067.55 24	6348	4.10	1068.72 1351	21.05	3600
	5m10n4div10	1352	200	1031.62 25	4399	2.25	1033.35 1352	23.74	3600
		1352	186	1031.74 26	4414	2.10	1032.59 1352	23.80	3600
		1352	250	1031.62 27	4969	2.59	1034.63 1209	14.54	3600
		1352	450	1031.62 25	6015	4.09	1034.70 1277	19.12	3600
	5m10n5div10	1375	200	887.35	31	5739	5.78	887.79	1375	35.69	3600
		1375	181	887.35	32	5679	5.53	887.81	1074	17.50	3600
		1375	250	887.35	30	6096	6.46	887.88	1128	21.48	3600
		1375	450	887.35	34	7449	9.10	887.89	1163	23.86	3600
	bold: best value

*: optimal solution italic: near optimal solution 6.

2 Non-preemptive job shop problem with fixed resource availability periodsTable 6 .

 6 10: Test results for Column Generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /10), one initial solution and different schedule lengths -Part 2.

	Problem	Initial	Schedule			Column Generation Model
		solution length		(multiple improving columns per job at each iteration)
					Linear Relaxation			Branch-and-bound
				Lower	Number	Number	CPU	Best	Best	Gap	CPU
					of	of
				bound	iterations columns (sec)	bound	solution (%)	(sec)
	10m10n1div10 2144	250	1523.3	72	10275

Table 6 .

 6 11: Test results for disjunctive model for modified benchmarks (scale /20).

	Problem		Disjunctive model
		Linear relaxation		Integer resolution
		Lower	Best	Best	Gap	CPU
		bound	bound	solution	(%)	(sec)
	5m5n1div20	114	187	187	0	0.07
	5m5n2div20	138	236	236	0	0.03
	5m5n3div20	135	219	219	0	0.06
	5m5n4div20	135	244	244	0	0.06
	5m5n5div20	133	248	248	0	0.12
	5m10n1div20	248	480	506	5.14	3600
	5m10n2div20	260	540	540	0	328.31
	5m10n3div20	277	537	582	7.63	3600
	5m10n4div20	275	560	560	0	976.04
	5m10n5div20	260	506	506	0	636.76
	10m10n1div20	556	816	869	6.10	3600
	10m10n2div20	548	826	826	0	374.14
	10m10n3div20	526	780	780	0	654.03
	10m10n4div20	503	762	803	5.11	3600
	10m10n5div20	527	822	822	0	3571.27
	10m15n1div20	786	1080.82	1442	25.05	3600
	10m15n2div20	817	1158.03	1528	24.21	3600
	10m15n3div20	778	1063.25	1448	26.57	3600
	10m15n4div20	790	1088.29	1378	21.02	3600
	10m15n5div20	821	1101.26	1611	31.64	3600

Non-preemptive job shop problem with fixed resource availability periodsTable 6 .

 6 12: Test results for Column Generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /20).

	Problem	Initial	Schedule			Column Generation Model
		solution length		(multiple improving columns per job at each iteration)
					Linear Relaxation			Branch-and-bound
				Lower	Number	Number	CPU	Best	Best	Gap	CPU
					of	of
				bound	iterationscolumns (sec)	bound	solution (%)	(sec)
	5m5n1div20	230	75	191.8	7	339	0.01	209		0	0.37
	5m5n2div20	254	75	232	7	337	0.03	251		0	0.18
	5m5n3div20	282	75	209.41	14	369	0.03	223		0	0.17
	5m5n4div20	268	75	241.5	7	241	0.03	254		0	0.25
	5m5n5div20	289	75	237.64	10	417	0.03	266		0	1.59
	5m10n1div20	620	100	495.47	16	2178	0.48	551		0	3235.90
	5m10n2div20	654	100	526.28	22	2586	0.76	579		0	2380.61
	5m10n3div20	702	100	561.18	15	2125	0.39	683		0	1985.86
	5m10n4div20	655	100	545.93	16	1979	0.45	625		0	1869.28
	5m10n5div20	625	100	475.59	19	2329	0.62	477.56		14.36	3600
	10m10n1div20	1030	150	823.09	30	4641	3.84	823.50 1030	20.24	3600
	10m10n2div20	1027	150	797.51	34	3976	3.54	797.83 1027	22.53	3600
	10m10n3div20	991	150	767.56	19	4321	2.84	768.09		22.72	3600
	10m10n4div20	974	150	755.04	25	4257	3.59	755.43		22.67	3600
	10m10n5div20	978	150	774.59	32	4555	4.26	775.28		20.03	3600
	10m15n1div20	1684	200	1252.08 56	13957	84.12	1252.21 1684	25.87	3600
	10m15n2div20	1827	200	1405.2	20	10401	27.79	1405.48 1827	23.26	3600
	10m15n3div20	1757	200	1298.13 32	13155	57.60	1298.28 1757	26.33	3600
	10m15n4div20	1684	200	1255.67 35	12012	52.56	1255.83 1684	25.65	3600
	10m15n5div20	1767	200	1310.84 40	14404	76.98	1311.07 1767	26.02	3600

Table 6 .

 6 13: Test results for Column Generation model when adding one improving column per job at each iteration in case of modified benchmarks (scale /20).

	Problem	Initial	Schedule			Column Generation Model
		solution length		(One improving column per job at each iteration)
					Linear Relaxation			Branch-and-bound
				Lower	Number	Number	CPU	Best	Best	Gap	CPU
					of	of
				bound	iterationscolumns (sec)	bound	solution (%)	(sec)
	5m5n1div20	230	75	191.8	23	108	0.04	226	226	0	0.40
	5m5n2div20	254	75	232	21	96	00.3	240	240	0	0.01
	5m5n3div20	282	75	209.41	28	124	0.06	282	282	0	0.3
	5m5n4div20	268	75	241.5	49	221	0.09	268	268	0	0.32
	5m5n5div20	289	75	237.64	54	305	0.11	266	266	0	1.75
	5m10n1div20	620	100	495.47	125	1015	1.32	620	620	0	69
	5m10n2div20	654	100	526.28	204	1829	3.92	654	654	0	117.12
	5m10n3div20	702	100	561.18	130	1050	1.40	702	702	0	53.96
	5m10n4div20	655	100	545.93	178	1105	1.68	655	655	0	80.10
	5m10n5div20	625	100	475.59	164	1289	2	625	625	0	191.60
	10m10n1div20	1030	150	823.09	297	2676	16.89	1030	1030	0	1165.61
	10m10n2div20	1027	150	797.51	307	2495	16.64	1027	1027	0	852.71
	10m10n3div20	991	150	767.56	309	2822	20.82	991	991	0	1018.69
	10m10n4div20	974	150	755.04	342	2763	19.35	974	974	0	1002.33
	10m10n5div20	978	150	774.59	484	3601	29.15	978	978	0	1542.03
	10m15n1div20	1684	200	1252.08 OFM
	10m15n2div20	1827	200	1405.2	OFM
	10m15n3div20	1757	200	1298.13 OFM
	10m15n4div20	1684	200	1255.67 OFM
	10m15n5div20	1767	200	1310.84 OFM
	OFM: Out of memory

Table 6 .

 6 14: Test results for resumable disjunctive model for modified benchmarks (scale /10).

	Problem		Disjunctive model
			Integer resolution
		Best	Best	Gap	CPU
		bound	solution	(%)	(sec)
	5m5n1div10	359	359	0	0.79
	5m5n2div10	434	434	0	0.14
	5m5n3div10	391	391	0	1.10
	5m5n4div10	413	413	0	0.23
	5m5n5div10	446	446	0	1.32
	5m10n1div10	771.83	952	18.92	3600
	5m10n2div10	842.30	1044	19.32	3600
	5m10n3div10	954.33	1073	11.06	3600
	5m10n4div10	855.20	1062	19.47	3600
	5m10n5div10	821.00	941	12.75	3600
	10m10n1div10	1388.00	1651	15.93	3600
	10m10n2div10	1358.55	1524	10.86	3600
	10m10n3div10	1351.40	1524	11.33	3600
	10m10n4div10	1282.32	1481	13.42	3600
	10m10n5div10	1362.72	1513	9.93	3600
	10m15n1div10	1898.61	2684	29.26	3600
	10m15n2div10	1958.83	2932	33.19	3600
	10m15n3div10	1851.63	2768	33.11	3600
	10m15n4div10	1816.47	2705	32.85	3600
	10m15n5div10	1925.00	2825	31.86	3600

Non-preemptive job shop problem with fixed resource availability periodsTable 6 .

 6 15: Test results for resumable Column Generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /10).

	Problem	Initial	Schedule			Column Generation Model
		solution length		(multiple improving columns per job at each iteration)
					Linear Relaxation			Branch-and-bound
				Lower	Number	Number	CPU	Best	Best	Gap	CPU
					of	of
				bound	iterationscolumns (sec)	bound	solution (%)	(sec)
	5m5n1div10	407	150	345.73	17	1154	0.23	364	364	0	6.62
	5m5n2div10	510	150	432.5	15	1063	0.20	434	434	0	0.04
	5m5n3div10	560	150	372.66	10	829	0.10	396	396	0	2.28
	5m5n4div10	585	150	410.5	11	966	0.17	415	415	0	0.34
	5m5n5div10	569	150	421.92	11	798	0.17	459	459	0	23.37
	5m10n1div10	1439	200	909.14	29	5394	6.12	909.92 1078	15.74	3600
	5m10n2div10	1380	200	964.71	36	6764	10.09	965.00 1226	21.46	3600
	5m10n3div10	1420	200	1041.4	18	4070	2.76	1041.88 1300	20.01	3600
	5m10n4div10	1352	200	1019.68 20	4696	3.04	1020.50 1352	24.70	3600
	5m10n5div10	1375	200	877.01	27	5886	9.28	877.33 1375	36.46	3600
	10m10n1div10	2144	250	1501.36 42	11235	71.21	1501.36 2144	30.11	3600
	10m10n2div10	2152	250	1437.83 31	9156	50.92	1437.38 2152	33.32	3600
	10m10n3div10	1944	250	1422.07 41	10115	47.37	1422.36 1944	26.97	3600
	10m10n4div10	1939	250	1357.42 44	10104	63.32	1357.43 1939	30.15	3600
	10m10n5div10	1958	250	1387.73 58	10992	72.26	1388.06 1958	29.26	3600
	10m15n1div10	3429	300	2276.78 60	31116	1635.38 2276.78 3429	33.75	3600
	10m15n2div10	3880	300	2571.12 31	16728	234.31 2556.12 3880	33.86	3600
	10m15n3div10	3524	300	2352.56 53	24521	588.04 2352.57 3524	33.38	3600
	10m15n4div10	3583	300	2314.48 50	25794	917.95 2314.49 3583	35.55	3600
	10m15n5div10	3520	300	2392.68 66	36020	1843.98 2392.68 3520	32.16	3600

  unavailability period h rk starts in [ES rk , LS rk ], it end in [T rk -(S rk -ES rk ), T rk + (LS rk -S rk )]. Then all the schedules associated to h rk overlap in the interval [LS rk , T rk -(S rk -ES rk )]. Operation O ij cannot be processed (hence finish) during the period [S rk , T rk ] reserved to an unavailability period h rk on machine r = mr ij . Then, w tj = +∞, ∀t = LS rk , .., T rk -(S rk -ES rk )

Table A .

 A 1: Test results for non-preemptive operations and fixed unavailability periods with JpH heuristic and different numbers of iterations.

Table A .

 A 6: CPU time for OpH1 heuristic and different numbers of iterations.

	3600	3600	3600	3600	3600
	3573.83	3532.5	3555.99	3542.84	3568.95
	20.34	20.65	20.32	20.29	20.33
	2.02	2.02	2.04	2.02	2.02
	0.20	0.20	0.20	0.21	0.20
	0.03	0.01	0.03	0.01	0.01
	3600	3600	3600	3600	3600
	2708.88	1893.73	2645.88	2679.33	2807.98
	17.62	17.58	17.61	17.59	17.59
	.74	1.76	1.74	1.76	1.74
		0.18	0.17	0.17	0.17
		0.01	0.01	0.01	0.01
		10m15n2	10m15n3	10m15n4	10m15n5

Table A .

 A 21: Test results for non-preemptive operations and fixed unavailability periods with MOpH2 heuristic and different rules.

	3600	3600	3600	3600	3600	3600	3600	3600	3600	3600	3600	3600	3600	3600	3600
	3496.37	3449.11	3489.86	3498.93	3451.59	3561.88	3535.8	3552.65	3552.26	3535.78	3573.83	3532.5	3555.99	3542.84	3568.95
	15.08	15.22	15.17	14.96	14.89	67.65	67.62	67.75	68.11	67.86	165.73	165.31	165.97	165.62	165.57
	1.51	1.52	1.52	1.48	1.49	6.78	6.77	6.78	6.81	6.81	16.58	16.50	16.58	16.63	16.55
	0.15	0.15	0.15	0.14	0.15	0.68	0.67	0.67	0.68	0.68	1.65	1.66	1.65	1.63	1.65
	0.01	0.01	0.01	0.01	0.01	0.06	0.06	0.07	0.06	0.07	0.15	0.15	0.17	0.15	0.17
	672.04	167.89	3600	565	1566.81	7.40	547.82	646.60	3600	1237.39	3600	3600	3600	3600	3600
	43.09	1519.4	1939.35	1324.87	174.72	2073.96	664.17	466.46	669.87	1814.3	2708.88	1893.73	2645.88	2679.33	2807.98
	14.61	14.78	14.75	14.57	14.60	69.70	69.67	69.63	69.91	69.90	174.20	173.87	174.51	173.97	174.05
	1.43	1.46	1.43	1.41	1.43	6.80	6.83	6.81	6.84	6.84	17.05	17.03	17.39	17.08	16.98
	15	0.14	0.15	0.14	0.14	0.67	0.67	0.68	0.68	0.68	1.71	1.70	1.71	1.71	1.70
		0.01	0.01	0.01	0.01	0.06	0.06	0.07	0.06	0.07	0.17	0.17	0.17	0.18	0.17
		5m10n2	5m10n3	5m10n4	5m10n5	10m10n1	10m10n2	10m10n3	10m10n4	10m10n5	10m15n1	10m15n2	10m15n3	10m15n4	10m15n5

Remerciements

Chapter 5

Approximation approaches

This chapter is dedicated to approximation methods (heuristics) as they aim to find good solutions for N P -hard combinatorial optimization problems in short.

We tackle the job shop scheduling problem with resource availability constraints. The originality of this approach is that it introduces flexibility on starting dates of unavailability periods and preemption of operations while constructing the schedule.

The structure of the chapter is the following: Section 5.1 present the construction methods we developed to tackle the job shop problem with flexible unavailability periods of resources and eventually preemptive operations. Section 5.2 discuss the way these construction heuristics, that are building blocks, are used in improving methods to obtain better results for the studied problem.

Construction methods

In this section, we present heuristics that construct a schedule based on various decision strategies. The choice of these strategies are related to how job operations and/or machines are prioritized, and how conflicts between jobs operations and machine unavailability periods are managed.

Elements of construction methods

General structure

The construction of schedules is based on the following elements:

1. Each time an operation has to be inserted, the heuristics try to schedule it as early as possible at the first availability period on the machine, starting from time zero if it is the first operation of the associated job, or based on the completion date of the immediately The ranking of Table 5.19 is deduced from Tables 5.17 and 5.18. Then the best heuristics for C max are OpH1 and MOpH1; OpH1 is dominant in case of non-preemptive operations and fixed unavailability periods; and MOpH1 is slightly dominant in case of resumable operations and flexible unavailability periods. The worst heuristic for C max is JpH in case of non-preemptive and fixed unavailability periods; while JpH is largely dominant for ∑ C i . For this criterion, dominances of OpH1 and MOpH1 are quite equal with a slight dominance of OpH1. The worst results are largely associated to heuristics OpH2 and MOpH2; however MOpH2 is slightly worse than OpH2. These results prove that it is better to use randomness in choosing initial sequences of jobs and operations than to use the rules of OpH2 and MOpH2.

Construction methods

Using construction heuristics in improving methods

The comparison between the values of JpH-R2 and the best values over all the other heuristics (see Table 5.21) shows that, for C max criterion, the values for some benchmarks (specially big ones) are slightly better with JpH-R2. However, the values of ∑ C i are worst.

Using construction heuristics in improving methods

Remark:

As the construction heuristics presented previously are very fast, they can be all implemented in another method. The solution to the problem is the best one over the solutions of the heuristics.

Reoptimizing OpH1 (reOpH1)

The construction of a schedule is made one operation after the other. According to an initial priority sequence s for operations (O 1 , .., O no ), where no = ∑ n i=1 n i is the total number of operations. Each time that an operation O from sequence s is sequenced on its associated machine by OIp procedure, all data structures, corresponding to the unavailability periods, the availability intervals and the starting and completion dates for all the sequenced operations (priority sequence s O = (1, .., O -1)), are reinitialized. Operation O is fixed on its associated machine as an unavailability period; OpH1 heuristic is reused to schedule the priority sequence s O .

Algorithm 9 describes the main steps of the heuristic.

For this method also the performance of the heuristic strongly depends on the operation priority order in the initial sequence. added although there might be other optimal paths from the last to the first operations of the job.

When a fixed number of columns are to be added, at each iteration of the column generation process, instruction (*) in the algorithm can be transformed from a for loop to a while loop. Obviously this takes more computational time; however, when the added columns are sufficiently relevant, RMP will not be overloaded of non necessary columns; which is useful when a branchand-bound procedure is performed after column generation.

Column generation algorithm

Column generation always works in the feasible domain. Indeed, all the added columns should correspond to feasible schedules for the jobs; and are based on the initial solution that is feasible for the problem. The pricing problem generates a column with a positive reduced cost corresponding to a variable in the primal problem that enters the basis. It is then not necessary to solve the pricing problem to optimality, any column with positive reduced cost can be used. During the column generation process, (RMP) keeps growing. Consequently, if the objective function value of the pricing problem is less than or equal to zero, then the current optimal solution for (RMP) is also optimal for the Master Problem.

The main steps of the column generation algorithm are described below.

From one of the heuristics presented in Chapter 5, an initial feasible solution to the problem is determined. It consists of one schedule or more. From the job sequences associated to this solution, the restricted master problem (RMP) is constructed.

Then, iteratively, the linear relaxation of the (RMP) is solved to find the dual values that 6.2 Non-preemptive job shop problem with fixed resource availability periods are necessary to define the sequences (columns) that improve the objective value of the primal problem. These sequences are determined by the dynamic programming algorithm and added to (RMP). The process stops when no new column is added.

If the corresponding solution is integral, an optimal solution to (RMP) is obtained, otherwise a branch-and-bound procedure is performed.

The important elements to study in this approach are:

• The quality of the added columns and the number of columns to add at each iteration,

• The difference between the linear relaxation and the solution of the branch-and-bound. This linear relaxation must be the same whatever the initial solution (s). The larger the schedule length, the lower is the linear relaxation,

• The computational time of the column generation and the computational limit for the branch-and-bound,

• The sensitivity to the initial solution,

• The sensitivity to the schedule length.

The general description of the column generation algorithm is provided by Algorithm 12. In this algorithm, a heuristic is used prior to the dynamic programming algorithm. This algorithm is only used if the heuristic does not find columns to add to (RMP). The goal is to avoid the computational effort of the dynamic programming algorithm and to avoid adding 6.2 Non-preemptive job shop problem with fixed resource availability periods Tables 6.9 and 6.10 show the test results for the column generation model when adding multiple improving columns per job at each iteration in case of modified benchmarks (scale /10), one initial solution and different schedule lengths as typecol 1 gives better results than typecol 2 . They are organized as Table 6.2 except that positions of the initial solution and the schedule length are permuted. Hence, Columns 2 shows the initial solution and Column 3 the schedule length.

For the previous test results, these results show that modifying the schedule length has an impact on the lower bound of the linear relaxation. Indeed, when the lower bound is not the same, it decreases due to the increase of the schedule length until reaching a stability value. The number of columns increases with the increase of the schedule length.

We could expect that increasing the schedule length will complicate the problem due to the huge number of variables (columns) in the master problem. But, for all the instances, the column generation model provides a solution and sometimes this solution is better than others given by a lower value of the schedule length.

Job shop problem with flexible availability periods on resources

• The job sequences are found by a dynamic programming algorithm very similar to Algorithm 1 (Section 6.2.3) except that the pretreatment phase is adapted as in the previous remark or eliminated.

Adapted column generation algorithm

This algorithm is quite similar to Algorithm 2 (Section 6.2.3). Indeed there are some differences relative to the initial solution and adding columns. Here also one of the heuristics presented in Chapter 5 is used to calculate an initial feasible solution to the problem. It consists of one schedule or more. From the job and unavailability sequences associated to this solution, the restricted master problem (aRMP) is constructed. Then, iteratively, the linear relaxation of the (aRMP) is solved to find the dual values that are necessary to define the sequences (columns) that improve the objective value of the primal problem. These sequences are determined, by the dynamic programming algorithm for jobs and the sequence calculating procedure for unavailability periods, and added to (aRMP). The process stops when no new column is added.

If the corresponding solution is integral, an optimal solution to (aRMP) is obtained, otherwise a branch-and-bound procedure is performed.

The general description of the column generation algorithm is provided by Algorithm 13.

Appendix

Tables A.1, A.3, A.18 summarize the test results for non-preemptive operations and fixed unavailability periods with respectively JpH, OpH1 and MOpH1 heuristics and different numbers of iterations 100, 1000, 10000, 100000. Tables A.2, A.4, A.19 summarize the test results for resumable operations and flexible unavailability periods with respectively JpH, OpH1 and MOpH1 heuristics and different numbers of iterations 100, 1000, 10000, 100000. Column 1 is the name of the instance; Columns 2-3, 4-5, 6-7, 8-9 represent respectively the test results of the heuristic for 100, 1000, 10000, 100000 iterations; and Columns 10-11 give the test results for the integer resolution of the disjunctive model. Columns 2, 4, 6, 8, 10 correspond to the makespan value of the solution and Columns 3, 5, 7, 9, 11 correspond to the value of the sum of the completion dates of the jobs of the solution. To appreciate the quality of the heuristics, the best and the worst values of the objective criteria are highlighted, indications on the gap between the best solution of the heuristics and the disjunctive MIP solution are given. Tables A.5, A.6 and A.20 present the CPU times respectively for JpH, OpH1, MOpH1 heuristics. These results are associated to the previous tables. Column 1 is the name of the instance; Columns from 2 to 5 represent the CPU times for non-preemptive operations and fixed unavailability periods; Columns from 6 to 9 represent the CPU times for resumable operations and flexible unavailability periods; and Columns 10-11 give the computation time for the integer resolution of the disjunctive model. Each Column from 2 to 9 represent the CPU of both C max and ∑ C i as they are calculated at the same time. Columns 2, 6 correspond to CPU for 100 iterations; Columns 3, 7 correspond to CPU for 1000 iterations; Columns 4, 8 correspond to CPU for 10000 iterations; Columns 5, 9 correspond to CPU for 100000 iterations; Columns 10 and 11 represent respectively the CPU time for C max , ∑ C i for the disjunctive MIP resolution. We give CPU times for each instance because the gaps between the CPU times of some instances by the disjunctive MIP are so high that it is less interesting to consider averages of the CPU times.

Keywords

Scheduling, flexibility, optimization, availability constraints, industrial systems, software programming, mathematical modeling, approximate methods, column generation

Abstract

In most of the machine scheduling literature, resources are assumed to be continuously available which is not always true. We deal with the context of unavailability known a priori; we are particularly interested in job-shop scheduling problems with flexible unavailability periods and tasks that can eventually be interrupted by unavailability periods. Integrating these constraints increase the complexity of the scheduling problems. We deal with flexibility that is related to at least one of the following points: moving the unavailability period in a time window, modification of the duration of the unavailability period, interruption of a task by an unavailability period, then resumed with a possible penalty.

In this thesis, we propose mathematical models for the problem. In addition to the resolution of the considered problems, the aim of this modeling is to allow for the analysis of the impact of different constraints and evaluation of the quality of the approximate methods and the column generation approach we develop. The approximate methods construct in very short time a schedule based on priority rules. The solutions are also used in our column generation approach. This approach adapts well to various objective functions and allows relatively easily for the integration of several constraints. Many experiments have been performed to validate the designed methods.