MATHEMATICAL MODELLING AND SOLUTION APPROACHES FOR PRODUCTION PLANNING IN A CHEMICAL INDUSTRY

This paper addresses a lot sizing problem in a Brazilian chemical industry where a product can be produced by more than one process, which can use different parallel machines and may even consume a wide range of raw materials. Moreover, most of the products are liquids and the inventories must be kept in a restricted number of storage tanks with a limited capacity. Hence, these two issues are barely addressed in the literature on lot sizing. The classical multi-level capacitated lot sizing problem was extended to address them and a mixed integer programming (MIP) formulation was developed to determine how many batches should be produced and in which tank products should be stored to meet the demands and minimize production costs. The results of computational experiments show that the commercial solver found poor quality solutions or could not find feasible solutions within one hour. Thus, we applied relaxand-fix and fix-and-optimize MIP based heuristics and we observed that these heuristics were able to obtain feasible solutions for more instances in shorter computational times and find better solutions than those obtained by the commercial solver to solve the proposed model.


INTRODUCTION
Production planning is one of the most important decision-making levels in the manufacturing industry and can be considered an essential tool tool to improve its (Li, Gao, Shao, Zhang & Wang, 2010) operating activities and one of the main keys to a company's success.The lot sizing problem is one of the production planning activities and it aims to determine the production quantity and time to satisfy the demand and minimize total production costs (Yanasse, 2013).A wide variety of characteristics has been explored in this problem, such as single or multiple items, single-level or multi-level production, storage and production capacity restrictions, setup time and/or cost, batch production, among others.When lot sizing is performed in a batch production system, the amounts to be produced are determined as integer multiples of the batch reaction volume.
According to Karimi, Ghomi & Wilson (2003), single-level production systems produce end items directly from purchased or raw materials.Several studies have discussed the single-level capacitated lot sizing problem (CLSP) using different solution approaches, as discussed in Jans & Degraeve (2008) and Yanasse (2013).On the other hand, multi-level production systems show a parent-component relationship among items, in which the item produced in an operation can be the input of another operation (Karimi et al., 2003).Billington, McClain & Thomas (1983) were pioneers regarding the discussion on the multi-level capacitated lot sizing problem (ML-CLSP) and after their work, many studies emerged.Tempelmeier & Derstroff (1996) applied Lagrangian relaxation and Akartunali & Miller (2009) proposed a heuristic that uses LP-andfix and relax-and-fix for an MLCLSP with overtime.Sahling, Buschkuhl, Tempelmeier & Helber (2009) treated an MLCLSP with a setup carry-over using a fix-and-optimize heuristic while Chen (2015a) used a fix-and-optimize heuristic and a variable neighborhood search (VNS).Furlan & Santos (2015) developed a hybrid approach using bees' algorithm and fix-and-optimize.Almeder, Klabjan, Traxler & Almada-Lobo (2015) studied practical infeasibilities in production planning due to lead time assumptions.Other articles related to multi-level production systems can be found in Buschkuhl, Sahling, Helber & Tempelmeier (2010).
In the process industry, which comprises the chemical industry, production planning studies focus mainly on long-term or short-term planning.Sahinidis, Grossmann, Fornari & Chathrathi (1989) developed a mixed integer problem (MIP) model for long-term planning that considers expansions or shutting down production lines.Blömer & Günther (1998) presented an MIP model to minimize the makespan for the scheduling problem with batch and multi-level systems.Grunow, Günther & Lehmann (2002) studied the production planning problem in a pharmaceutical and chemical industry with a batch and multi-level production line system.Cooke & Rohleder (2006) dealt with the lot sizing and scheduling problems of an industry with continuous processing and multiple plants to regulate inventory levels and quantities produced in each plant.Velez In the literature, studies related to the process industry generally address scheduling problems (Blömer & Günther (1998, 2000)) or long term decisions (Mostafaei & Ghaffari Hadigheh (2014)).Therefore, this paper gives an extension of the classical lot sizing problem, that had not been yet considered, covering mid-to short-term decisions which still has not been widely studied in processing industry problems.The problem was motivated by a Brazilian chemical industry and, thus can be applied in other chemical or even process industries.In the problem addressed in this paper, there are multiple machines or production units for a batch production in a system's multi-level product structure.A feature in the problem, not common in the lot sizing problem, is the presence of multiple processes to produce an item, i.e., one product can be made following several recipes.Related research was developed by Luche, Morabito & Pureza (2009) which integrates the process selection and single-level lot sizing to tackle a production problem in an electrofused grain industry where each process (or lot) can produce a set of products.However, in our paper, each process produces only one product and processes that produce the same product can differ in terms of some raw materials consumed.When a process finishes, the intermediate product is consumed in other processes or it is stored in tanks, while most of the final products must be packed.Classical lot sizing problems do not take into account inventory storage tank constraints during the production process of intermediate and final products (see Karimi et al. (2003), Chen (2015a), Furlan & Santos (2015)).The need to consider storage tanks resembles the in terms of proposed by Toledo, Franc ¸a, Morabito & Kimms (2007) for the soft drink industry and Baldo, Santos, Almada-Lobo & Morabito (2014) for the brewery industry, respectively.Therefore, in this paper, we deal with a multi-level lot sizing problem where an item can be produced adopting several processes with limited resources for production and storage of items.The problem was modelled as a mixed integer programming and a CPLEX 12.5 optimization solver was used to solve it.However, the commercial solver was not efficient in finding feasible solutions of good quality.To overcome this inefficiency, we developed relax-and-fix and fix-andoptimize heuristics, which have shown promising results for the instances generated based on real data.

PROBLEM DEFINITION
This study focuses on the medium-term production planning based on a Brazilian chemical industry.The production structure is characterized by the fact that more than one recipe can produce the same product, even if they consume different feedstocks.This can be seen in many chemical industries as shown in Crama, Pascual & Torres (2004) and in other process industry companies.Figure 1 illustrates an example where product I1 can be produced by two recipes (I1-1 and I1-2).Both consume feedstock F2 and F3, however recipe I1-1 uses feedstock F1 while I1-2 uses F4.The difference between the ingredients used in the recipes to produce the same product is explained by the chemical similarity between the compounds, i.e., the components can be different types of alcohols (varying on the number of CH 2 presented in the molecule), glycols (such as monoethylene and diethylene) and so on.This particular feature enhances the difficulty to solve the MLCLSP model, whereas the choice of which recipe is going to be produced should take into account the availability of feedstocks, the production costs and processing time.Another important feature for the chemical industry is the inventory control, which is more complex than what is usually dealt with in classical lot sizing problems.Products must be kept in a limited number of storage tanks for future consumption in other recipes, therefore it is important to control which product is being stored in each tank.That is because the total amount of inventory at the end of each period cannot be constrained only by the summation of the tanks' capacity since products cannot share one storage tank simultaneously.Figure 2 illustrates this situation, where the inventory of products I1 and I2 do not fulfill the storage capacity, however no other product can be stored in Tank 1 and Tank 2 until they are emptied and cleaned.Figure 3 shows a simplified representation of a production process consisting of three different products (I2, I3, and I4), which compete with each other to use two reactors.Five feedstocks are represented by rectangles (F2 to F6) and three production processes (recipes) are indicated by ellipses.The production process begins when a predetermined amount of feedstocks has been added to a reactor.Such feedstocks must react during a specific amount of time until they become a homogeneous product.The production process of product I3 consumes feedstocks F4 and F5 and then it requires one tank, such as Tank 3, to store I3 until it is used in the production process of product I4.This structure of consumption characterizes a multi-level production system.After the production process finishes, products have to be packed before being delivered to customers.The packing equipment can be supplied by the tanks and reactor, since the pipes connect all of them, as illustrated in Figure 4.In fact, each reactor has a specific tank with the same capacity as its own, which can buffer products while the next batch is being processed.These dedicated tanks are assumed as an internal compound of the reactor.

Modelling Assumptions
The problem described in Section 2 will not be completely modelled in this section.The reason for this is to reduce the computational burden, as well as the number of modelled features.The proposed model does not consider the availability and inventory of feedstocks, instead of that it can be used to infer the amount of feedstocks that should be purchased over the planning periods.Furthermore, the capacity of the packing equipment is large enough to not become a bottleneck of the system, so that packing operations are overlooked.
Lot sizing problems usually aggregate demands and productions in families, aiming to reduce the number of products and hence the computational burden.This approach is possibly due to the prevailing problem dealt with in most papers addressing lot sizing, in which a reduced quantity of information is required to find solutions that resemble real solutions.However, these aggregations cannot be applied to this problem due to two main reasons: multiple recipes and storage control.Figure 5 illustrates ten different recipes used to produce product I18.These recipes are directly associated with the reactors (which from now on will be referred to as machines), that is, given a recipe number it is simple to determine in which machine this recipe has to be processed.It can be observed that feedstocks F77, F90, F117, and F129 are consumed by all recipes while feedstocks F7, F32, F137, and F139 can be used in only some recipes.Therefore, if the recipes of this product were aggregated in one product, the planning would determine how much of these last four feedstocks is necessary to meet the demand of product I18.On the other hand, the number of intermediate products kept in storage tanks is indispensable as it should be limited to the amount of storage tanks available.In addition, it is necessary to control the quantity of each designated product for the storage tank, ensuring that its limits are not violated, and thus ensuring that the solutions found are similar to those used in practice.

Mathematical Model
To model the problem, consider J items, indexed by j ( j ∈ {1, . . ., J }), which can be final or intermediate products to be produced over a finite planning horizon of T periods, indexed by t (t ∈ {1, . . ., T }).The products can be stored in Q storage tanks, indexed by q (q ∈ {1, . . ., Q}), that are used preferably by intermediate products.The number of recipes for a product j varies from 1 to |R( j )|.Each recipe r can consume one or more of the F available feedstocks, indexed by f ( f ∈ {1, . . ., F}), and must be processed in one of the M capacitated machines, indexed by m (m ∈ {1, . . ., M}).
In the model, there are two sets of binary variables: the first one represents setup occurrence (Y j,r,t , ∀ j, r, t ) and the other represents tank utilization (Z q, j,t , ∀q, j, t ).Another set of variables consists of integer variables which represent the number of produced batches (X j,r,t ∀ j, r, t ) and the elements of the last set are continuous variables (I j,t ∀ j, t ) representing the inventory of products.
The internal demands are not multiples of production batches, therefore if the quantity of an intermediate item produced has not been completely consumed, it should be stored in a tank.However, these tanks are scarce resources and cannot be shared simultaneously by more than one product.To overcome the shortage of storage tanks, the industry allows a secondary form of storage, in which barrels can store products after a manual packaging process.Therefore, this feature has been taken into account in the model, represented by a continuous set of variables W j,t , ∀ j, t .As one of the objectives is to reduce the use of these barrels, a penalty was added to the objective function to avoid the occurrence of this operation.
The subsets, parameters and variables considered in the mathematical model proposed are introduced as follows: feedstocks consumed by recipe r; J 1 (m) products that can be produced in machine m; J 2 (q) products that can use storage tank q; K products that can be stored in tanks; Q( j ) storage tanks that can be used by product j ; R( j ) recipes that can produce product j .

Parameters a m, j,r
consumption of machine m, in hours, for the production of one batch of product j through recipe r; b q storage capacity of tank q; c f, j,r,t cost of feedstock f to produce one batch of product j using recipe r in period t ; d j,t demand of product j in period t ; e j,r quantity of product j produced per batch through recipe r; g i, j,r quantity of intermediate product i consumed in the production of one batch of product j through recipe r; h j,t cost of holding product j in period t ; I j initial inventory of product j ; s j,t setup cost of product j in period t ; C AP m,t production capacity, in hours, of machine m in period t ; BIG M sufficiently large number; β penalty for the secondary storage.

Variables
I j,t inventory of product j at the end of period t ; W j,t quantity of product j for secondary storage in period t ; X j,r,t batches of product j produced by recipe r in period t ; Y j,r,t (binary) occurrence of setup for product j through reaction r, in period t ; Z q, j,t (binary) utilization of tank q by product j at the end of period t .

Mathematical Model
Y j,r,t and Z q, j,t ∈ {0, 1}, ∀ j, r ∈ R( j ), t, q (9) The objective function (1) aims at minimizing costs of production, setup, inventory and secondary storage through a trade-off between recipes that could reduce holding costs and setup costs.The production cost is determined only by feedstock consumption in the recipes, i.e., if a process consumes only intermediate products, its cost is defined by feedstock expenses used in their production.On the other hand, setup costs always incur the production of a recipe.
The secondary storage cost is calculated from the total volume for the barrel when this operation is conducted.
Constraints (2) define the restrictions of the production capacity of machines.Constraints (3) express the inventory balance, i.e., the production of all recipes for a product in a period plus the stock from the previous period should be enough to meet the demands (internal and external) and the excess is held in tanks or secondary stock.Constraints (4) indicate a setup state for a recipe of a product in all periods of the planning horizon.
Constraints ( 5) indicate a product inventory, which can be distributed among several tanks in subset Q( j ) at the end of a period.The inventories of each product are limited to the total capacity of the tanks reserved for them.Products that do not use storage tanks, have their stocks set to zero.Constraints (6) define the initial inventory of intermediate and final products.Moreover, constraints (7) assure each tank can be used at most by one product belonging to subset J(q) at the end of each period.Finally, ( 8), ( 9) and ( 10) define the domains of variables.

SOLUTION APPROACHES
Two classical relax-and-fix heuristics were used aiming to find good quality solutions while other two fix-and-optimize heuristics were used intending to improve incumbent solutions.

Relax-and-fix heuristic
The  Figure 6 illustrates the execution of the heuristic applied to a problem with nine integer variables (hereafter, the term integer variable will refer to both binary and integer variables).In the first iteration, the first column of variables was considered integer (grey column) while the other two columns were relaxed.This subproblem is solved and, if a feasible solution is found, the integer variables must be fixed using their solution values.In the second iteration, the fixed variables (black column) cannot be modified, therefore the second column was selected to become integer variables.This second subproblem is then solved and, if a feasible solution is found, the integer variables must also be fixed one more time.In the last iteration, the third column becomes the integer variables and if this subproblem provides a feasible solution, it is also a feasible solution for the original MIP, because all integer variables of the MIP assume integer values.However, if a feasible solution cannot be found for one of the subproblems, the heuristic ends.The inability of this heuristic to find a feasible solution does not mean there is no solution.
Relax-and-fix by period (R F p ). Integer variables are partitioned according to periods.Subsets of simplified variables usually become integers in a forward or backward sequence, from the first to the last period or from the last to the first period, respectively.

Relax-and-fix by product (R F i ).
Variables are partitioned according to products.Batch problems with a multi-level product structure should start from products belonging to the highest levels because the internal demand of one level is completely known only after the demand of the higher level has been determined.

Fix-and-optimize heuristic
The fix-and-optimize approach, proposed by Helber & Sahling (2008) and then published by Helber & Sahling (2010), was originally developed as a constructive heuristic for the MLCLSP problem with overtime.Initially, the setup was assigned to each product in all periods and the heuristic was responsible for solving subproblems to optimality, avoiding unnecessary setups.However, fix-and-optimize is currently considered an improvement heuristic that requires an initial feasible solution.Basically, fix-and-optimize consists of searching for the best feasible solutions from an initial solution already known, thus it can be integrated with relax-and-fix heuristics (Stadtler & Sahling, 2013).Figure 7 illustrates this heuristic, which is similar to the relax-and-fix heuristic, except there are no relaxed variables.In each iteration, a subset of variables is considered integer, while the other variables remain fixed with the values of the incumbent solution.The grey and black columns represent integer and fixed variables, respectively.At the end of the iteration, if a better solution has been found, the subset of integer variables are fixed, so that another subproblem can be re-optimized.Fix-and-optimize can also partition its variables by period (F O p ) and by products (F O i ), as in the Relax-and-Fix procedure.

Generation of Instances
The real problem in the chemical industry deals with 281 products (of which 101 are intermediate), each one with at most 12 recipes (which results in a total of 534 recipes), 49 feedstock, 7 machines.The structure was kept as in the company, i.e., the processing time, production quantity and machines were maintained for each recipe feedstocks and intermediate products consumed.
On the other hand, data of 12 weeks containing information about feedstock cost, external demand, initial stock and the storage capacity of some tanks were used to generate instances so as to simulate several scenarios similar to the ones provided by the company.The average and sample variances of the initial stock, demands, feedstock costs and storage capacity were taken from the data and applied to a normal distribution (N) to generate values for the instances.Finally, setup and storage costs were calculated according to a uniform distribution (U) and a percentage of the most expensive cost (MEC) among all recipes of each product.Table 1 summarizes the distributions and parameters used for the data generation.
According to data provided by the industry, some feedstock costs and demands of the products can be constant or variable during the planning horizon.The latter may even assume null demand in some periods, therefore around 50% of the products presented demand.Therefore, after the initial data generation (see Table 1), a new procedure was applied to increase the similarity between the generated data and data from the company.
This correction procedure uses uniform distribution to determine whether the generated data must be constant or variable over the planning horizon.In the case of variable data, another uniform distribution determines if the value should be zero or assume a perturbation of the current value.This perturbation is given by the multiplication of the generated data by a uniform distribution U(0.9;1).The parameters considered are shown in Table 2 and reflect what was observed in the company's data.
The demand of a product has 30% chance of being constant over the periods and 70% chance of being variable.A value is generated through normal distribution, as described above, to be the base demand for the product.In the case of a constant demand, all periods are set to the base demand.For a variable demand, each period has 35% chance of being set to a null demand and 65% chance of being set to a value obtained by perturbing the base demand with a uniform distribution U(0.9;1).
The simulation of a storage tank considered 3 scenarios: one with only exclusive tanks, another in which two products share one tank and the last in which 4 products share the same tank, totalizing 101, 52 and 26 tanks, respectively.Since the initial stock was generated by a normal distribution, it may be greater than the storage capacity of the product.In this case, the initial stock of the product is defined as this storage limit.In scenarios where tanks are shared, only one of the products that use the tank has initial stock.Besides that, most of final products must be packed directly from the reactor, while all intermediate products can use storage tanks.
The procedure to determine the production capacity of machines starts by determining the sum of the time required for all recipes of a machine to attend their demand.In this step, the external demand, ordered by clients, is equally divided between all recipes of a product and the lowest integer number of batches is found to satisfy their demand portion.Therefore, the internal demand required for the production of other products can be equally divided once again among all recipes.The lowest integer number of batches is then updated to satisfy the total demand of all recipes.Finally, the production capacities are disturbed from the last to the second periods, following a uniform distribution U (0.9, 1.0).The reduced capacity in each period is added to the previous period to avoid infeasibility.Two variations, a tighter one (110%) and another looser (125%), based on the productive capacity are then generated.
The final instances consist of ten subsets generated and based on a structure of product, reactions, and machines.Each subset has one value of demand and feedstock cost, two values of periods (6 and 12 weeks), holding costs and production capacity, and three values of setup cost and storage tanks.Therefore, 720 instances were generated for use in the computational experiments.

Execution Analysis
The computational experiments were performed using the optimization CPLEX 12.5 package, on a computer with a Linux Mint 15 operating system, an Intel R Core TM i7-2600 processor and 16 GB of RAM.The following settings of CPLEX were changed: one thread for each execution, relative GAP of 10 −6 and time limit of 3600 seconds.The models built to represent each instance have at most 6408 integer, 7620 binary and 3473 continuous variables.The combined heuristics have a different time limit: relax-and-fix by period with fix-and-optimize by period (R F p F O p ) and relax-and-fix by item with fix-and-optimize by item (R F i F O i ) have 1800 seconds for each phase while relax-and-fix by period with fix-and-optimize by item (R F p F O i ) have 3240 and 360 seconds, respectively.These heuristics split the total available time equally among their subproblems, i.e., R F p F O p designated 150 seconds for each iteration of R F p and F O p phases, for instances with 12 periods, while 300 seconds for instances with 6 periods.

Mathematical Model
First, we evaluated the performance of CPLEX in solving the MIP model for all proposed instances.After one hour of execution, feasible solutions were found in 85% of the instances with six periods in the planning horizon and in 70% of the instances with 12 periods.The average GAPs, calculated by 100 * feasible solution -lower bound lower bound , were higher than 20% and the average execution times were more than 3583 seconds.
Figure 8 shows some graphics of the quality of solutions and feasibility percentage according to the number of periods, production capacity, setup and holding costs for not shared and shared tanks.An overview of the behavior of the solutions shows their quality, measured by the average GAP, deteriorates from not shared to shared tanks, as well as from two to four products sharing the same tank.In the same situation, the number of feasible solutions found by the solver decreases.
When the number of periods increases, the average GAPs become higher and the percentage of feasible solutions reduces, as shown in Figures 8(a) and 8(b), because the number of variables in the MIP model increases when the number of periods changes from 6 to 12.
Instances of a looser production capacity enable the optimization package to find more feasible solutions than those with a tighter capacity, as shown in Figure 8(d).However, the optimization package faces difficulties in finding solutions of good quality or proving their quality when storage tanks change from not shared to shared or when the shared level increases.Especially instances with higher production capacity show such a behavior, as shown in Figure 8(c).
According to Figure 8(e), the average GAPs of instances with not shared tanks increase when the setup costs rise.On the other hand, average GAPs of instances with shared tanks decrease when the setup costs increase, which indicates that the optimization solver can explore solutions more efficiently, raising lower bounds of the MIPs. Figure 8(f) shows that higher setup costs help the solver to obtain feasible solutions for instances with 4 products sharing the same tank, whereas, for other instances, the feasibility percentages are almost identical when the setup costs vary.
Finally, the holding costs may not influence the average GAPs or the feasibility percentage, differently from the number of periods, production capacity and setup cost.Figures 8(g) and 8(h) show small magnitudes in the average GAP differences and no behavior pattern, respectively.

Heuristics
We used relax-and-fix by period (R F p ), relax-and-fix by product (R F i ), fix-and-optimize by period (F O p ), fix-and-optimize by product (F O i ) and some of its combinations, as shown in Table 3, to overcome the difficulty faced by the optimization package regarding the resolution of the mathematical model.As relax-and-fix by product (R F i ) and relax-and-fix by product with fix-and-optimize by period (R F i F O p ) were not promising for the instances considered in the tests, their results will be omitted in future analyses.In general, R F i divides MIP into several subproblems with few integer variables, at most 144 integer and 156 binary, and 22.8 integer and 34.8 binary on average.Therefore, near-optimal solutions can be quickly found for each subproblem.However, the subproblems for instances with shared tanks represent the original problem more weakly than R F p , because in each iteration the whole planning horizon of a single product is fixed.One consequence of this procedure is that some tanks can be allocated improperly during the first iterations.This may happen due to the relaxed Z q, j,t variables, which allow more than one product to use a single tank simultaneously, which is forbidden in practice.During the iterations, variables Z q, j,t become integer again and require exclusivity of the storage tank, which can lead to unavailable tanks in some period that still may need to store products.This drawback is dealt with directly in the R F p approach, since all Z q, j,t variables of one period are considered integer in each iteration.
Table 4 shows the average and maximum execution times spent on each heuristic.The division of time used in the constructive and improvement phases considers only one iteration for the fix-and-optimize, which simplifies the control of the execution time limit.However, other approaches, as a total number of iterations, could have been used.The good performance of R F p is due to the large production capacity of the instances in earlier periods and to the reasonable number of integer variables in each MIP subproblem.The distribution of production capacity through periods meets the demand in later periods with the consumption of inventory.On the other hand, the number of integer variables in the subproblems enables the optimization package to perform well in reasonable time.Finally, the efficiency of R F p F O i is due mainly to the constructive phase (relax-and-fix), which can find good-quality solutions and the improvement phase (fix-and-optimize), which can refine them.

Analysis of constructive phases
Comparing the running times and solutions obtained by R F p and only by the constructive phase (relax-and-fix) of the R F p F O i revealed that longer execution time does not guarantee best solutions since both use the same code but with a different time limit.Table 7 shows that the constructive heuristic R F p runs approximately 60 seconds more than the constructive phase of R F p F O i , which is because the latter has some reserved time for the improvement phase (fix-and-optimize).Nevertheless, the constructive phase of R F p F O i showed an average GAP 0.002% lower than that of R F p for instances with 12 periods.Furthermore, the constructive phase of R F p F O i was more efficient than that of R F p for instances with 6 and 12 periods when the absolute number of best solutions was considered (see Table 7).Although it seems counter-intuitive, since we expected the constructive phase to perform better over more time, it stimulated us to investigate the influence of reducing the execution time on the final values of feasible solutions.

Analysis of the influence of the execution time
The aim of this part of the experiments was to analyse how the execution time influences the quality of solutions found by MIP, R F p and R F p F O i .The total time for each experiment was limited to 36, 72, 144 and 288 seconds.However, R F p F O i was not able to perform the tests with 36 seconds for instances with 12 periods due to the shortage of processing time, since in this case the F O i phase requires at least 26 seconds to perform all subproblems, leaving less than 1 second to perform each subproblem of the R F p phase.
Table 8 shows the average GAPs of the feasible solutions of the computational experiments.
Even after 3600 seconds of execution, the average GAPs of MIP were far greater than the average GAPs obtained by both heuristics with few seconds of execution.This shows that relax-and-fix and fix-and-optimize are able to obtain good solutions for problems similar to those addressed in this paper after a short processing time.

CONCLUSIONS
This paper has addressed a lot sizing problem in a Brazilian chemical industry.The problem was modelled as a mixed integer programming (MIP) and aimed at minimizing costs of feedstock, setup, inventory and secondary storage.Storage tanks were modelled for intermediate products, which limits the amount of stock.
According to the computational experiments conducted, increasing the number of periods hampers the resolution of the problem, while increasing the holding cost exerts no significant influence.When the production capacity and setup cost rise, more feasible solutions can be found.On the other hand, increasing the production capacity results in larger average GAPs, possibly due to the difficulty of finding feasible solutions of good quality or proving their quality.Finally, the average GAPs of instances that have shared tanks tend to be reduced when setup costs are higher.
The optimization solver used in the computational tests were able to find feasible solutions with average GAPs lower than 8.04% for instances with not shared storage tanks.However, for shared storage tanks, the percentage of feasibility was reduced and the average GAPs significantly increased, which indicates the need for heuristics to solve the proposed problem.
Among the heuristic approaches proposed, relax-and-fix by periods (R F p ) and relax-and-fix by periods with fix-and-optimize by products (R F p F O i ) showed to be promising for problems similar to those found in the industry under study.Both heuristics were able to find good feasible solutions with an average GAP between 1.64% and 2.02% after one hour of execution.When a shorter time was available, i.e. 36 to 288 seconds, R F p managed to find feasible solutions for over 99% of the instances, while R F p F O i showed the lowest average GAPs but found a smaller number of feasible solutions.
One of the objectives of the industry studied is to resolve instances in a shorter time to help PCP managers to analyze several scenarios of a production plan.The heuristics addressed in this study met the industry requirements.R F p and R F p F O i performed much better than the mixed integer program (MIP) regarding both the solution quality and execution time.
Further research can extend the proposed model by including setup time, production cost for each production unit, packaging capacity or incorporating scheduling of production or storage.Furthermore, other heuristics can be applied to this problem to evaluate its performance, such as a variable neighborhood search (VNS) (Almada-Lobo, Oliveira & Carravilla, 2008) or an adaptive large neighborhood search (ALNS) (Muller, Spoorendonk & Pisinger, 2012).
, Sundaramoorthy & Maravelias (2013) developed an algorithm to calculate lower bounds of necessary tasks that are used to express valid inequalities to enhance MIP scheduling model performance of chemical manufacturing facilities.Mostafaei & Ghaffari Hadigheh (2014) developed an MIP model for long-term scheduling in a pipeline system of a refinery and its distribution centers.Shaik & Bhat (2014) studied short-term scheduling in a pulp industry providing a mathematical model based on a state-task-network (STN).Moniz, Barbosa-Póvoa, de Sousa & Duarte (2014) proposed an MIP model to integrate scheduling and decision-making processes to solve a real problem from a chemical-pharmaceutical industry.Almada-Lobo, Clark, Guimarães, Figueira & Amorim (2015) and Copil, Wörbelauer, Meyr & Tempelmeier (2016) discussed various industrial environments and applications.

Figure 1 -
Figure 1 -An example of a product that can be produced by two recipes using different feedstocks.

Figure 2 -
Figure 2 -Storage operation of a product requires exclusivity of the tank and maynot fill it completely.

Figure 3 -
Figure 3 -Production process flow for two reactors of the studied industry.

Figure 4 -
Figure 4 -Packing operations can receive products from reactors or from tanks.

Figure 5 -
Figure 5 -Example of feedstocks consumed in the production of product I18.
relax-and-fix approach, proposed by Dillenberger, Escudero, Wollensak & Zhang (1994), is a constructive heuristic that partitions a problem into several subproblems containing far fewer integer variables and solves them iteratively.Basically, it divides the model variables into three disjoint subsets: fixed variables, integer (binary) variables, and relaxed variables.This heuristic has been applied to several models and presented good results(Dillenberger et al., 1994;Stadtler, 2003;Akartunali & Miller, 2009; Toledo, da Silva Arantes, Hossomi, Franc ¸a & Akartunali, 2015).

Figure 6 -
Figure 6 -Representation of a relax-and-fix heuristic.

Figure 7 -
Figure 7 -Representation of a fix-and-optimize heuristic by period.

Figure 8 -
Figure 8 -Graphics of average GAPs and feasibility percentage for the MIP model in relation to storage tank sharing.

Table 1 -
Statistical distributions and parameters used in the data generation.

Table 2 -
Parameters used in the adjustment of feedstock cost and demand.

Table 3 -
Heuristics used in the computational experiments.

Table 4 -
Average [maximum]execution time in seconds for the heuristics.

Table 7 -
Comparison between the constructive phase of RF p and RF p FO i .

Table 8 -
Average GAPs of the feasible solutions found when the number of periods and execution time were varied.