You are on page 1of 137

PRODUCTION SCHEDULING AND INVENTORY MANAGEMENT

FOR AN ICE CREAM MANUFACTURER USING HIERARCHICAL


PLANNING MODELS
by
Andrea Cameron

Submitted
in partial fulfillment of the requirements
for the degree of

MASTER OF APPLIED SCIENCE

Major Subject: Industrial Engineering

at
DALHOUSIE UNIVERSITY

Halifax, Nova Scotia

March 2009

Copyright by Andrea Cameron, 2009

1*1

Library and
Archives Canada

Bibliotheque et
Archives Canada

Published Heritage
Branch

Direction du
Patrimoine de I'edition

395 Wellington Street


Ottawa ON K1A0N4
Canada

395, rue Wellington


Ottawa ON K1A0N4
Canada

Your file Votre reference


ISBN: 978-0-494-50001-9
Our file Notre reference
ISBN: 978-0-494-50001-9

NOTICE:
The author has granted a nonexclusive license allowing Library
and Archives Canada to reproduce,
publish, archive, preserve, conserve,
communicate to the public by
telecommunication or on the Internet,
loan, distribute and sell theses
worldwide, for commercial or noncommercial purposes, in microform,
paper, electronic and/or any other
formats.

AVIS:
L'auteur a accorde une licence non exclusive
permettant a la Bibliotheque et Archives
Canada de reproduire, publier, archiver,
sauvegarder, conserver, transmettre au public
par telecommunication ou par Plntemet, prefer,
distribuer et vendre des theses partout dans
le monde, a des fins commerciales ou autres,
sur support microforme, papier, electronique
et/ou autres formats.

The author retains copyright


ownership and moral rights in
this thesis. Neither the thesis
nor substantial extracts from it
may be printed or otherwise
reproduced without the author's
permission.

L'auteur conserve la propriete du droit d'auteur


et des droits moraux qui protege cette these.
Ni la these ni des extraits substantiels de
celle-ci ne doivent etre imprimes ou autrement
reproduits sans son autorisation.

In compliance with the Canadian


Privacy Act some supporting
forms may have been removed
from this thesis.

Conformement a la loi canadienne


sur la protection de la vie privee,
quelques formulaires secondaires
ont ete enleves de cette these.

While these forms may be included


in the document page count,
their removal does not represent
any loss of content from the
thesis.

Bien que ces formulaires


aient inclus dans la pagination,
il n'y aura aucun contenu manquant.

Canada

DALHOUS1E UNIVERSITY

To comply with the Canadian Privacy Act the National Library of Canada has requested
that the following pages be removed from this copy of the thesis:
Preliminary Pages
Examiners Signature Page
Dalhousie Library Copyright Agreement
Appendices
Copyright Releases (if applicable)

TABLE OF CONTENTS
Page
LIST OF TABLES

vi

LIST OF FIGURES

vii

ABSTRACT

viii

LIST OF ABBREVIATIONS

ix

ACKNOWLEDGEMENTS

Chapter 1

An Introduction to Production and Inventory Management in the Process


Industries
1

Chapter 2

The Ice Cream Production Process

Chapter 3

Background on Production Planning in Process Industries

15

3.1

Production and Inventory Management Applications

17

3.2

General Production and Inventory Management Models

22

The Hierarchical Modelling Approach

28

4.1

Production and Inventory Management System Database

29

4.2

The Yearly Aggregate Plan

30

4.3

The Weekly Scheduling Plan

31

4.4

Detailed Scheduling Model

32

The Aggregate Planning Model: Model A

34

5.1

Aggregate Model Literature

34

5.2

Mathematical Model A

36

5.3

Data

39

Chapter 4

Chapter 5

5.3.1

Aggregating Data

40

5.3.2

Demand and Inventory

42

5.3.3

Labour Schemes

45

5.3.4

Freezer and Line Capacities

47

5.3.5

Warehouse Utilization and Costs

51

5.4

Implementation

52

5.5

Results

54

The Weekly Scheduling Model: Model B

58

Chapter 6

iv

6.1

Disaggregated Model Literature

59

6.2

Initial Model Approach

66

6.3

Formulating the Model

68

6.4

Mathematical Model B

73

6.5

Data

77

6.5.1

Creating Family Groupings

78

6.5.2

Production Matrix

80

6.5.2.1 Calculating Effective Demand

81

6.5.2.2 Determining Production Hours

82

6.5.2.3 Setup Times

83

6.5.2.4 Compiling the Production Matrix

84

Cost Matrix

86

6.5.3.1 Setup Costs

86

6.5.3.2 Holding Costs

87

6.5.3.3 Compiling the Cost Matrix

88

6.5.3

6.6

Implementation

90

6.7

Results

91

6.8

Testing and Validation

94

6.9

Future Work

98

Chapter 7

The Daily Sequencing Model: Model C

100

7.1

Sequencing Model Literature

101

7.2

Mathematical Model C

104

7.3

Model C Example Implementation

107

7.4

Future Work

Ill

Conclusion...

112

Chapter 8
References

'.

Appendices

117
121

Appendix A

Model A MPL Code

...122

Appendix B

Model B MPL Code

125

Appendix C

Model C MPL Code

127

LIST OF TABLES
Table 1 - Sample of Aggregated Product Groups

41

Table 2 - Sample of Forecasted and Effective Demand

45

Table 3 - Model A Labour Schemes

46

Table 4 - Labour Scheme Sample Cost Calculations

47

Table 5 - Line Utilization Expressed in Units of 2L Tubs

49

Table 6 - Warehousing Costs by Facility

51

Table 7 - Model A Labour Scheme Results

55

Table 8 - Wagner Whitin Dynamic Lot Size Example 1

71

Table 9 - Wagner Whitin Dynamic Lot Size Example 2

71

Table 10 - Results of Elastic Constraint Testing

76

Table 11 - Sample of Product Family Groupings

80

Table 12 - Sample Production Matrix

81

Table 13 - Sample Cost Matrix

86

Table 14 - Sample Production Results from Model B

91

Table 15 -Family 1 Sample Production

92

Table 16 - Labour Schedule for Model A

95

Table 17 - Model C Example Dummy Start Times

106

Table 18 - Model C Example Product Data

107

VI

LIST OF FIGURES

Figure 1 - Seasonal Ice Cream Demand Pattern


Figure 2 - Ice Cream Production Process

8
11

Figure 3 - Hierarchical Production Plan Flowchart for Ice Cream Production System.... 29
Figure 4 - Model A Inventory Results

56

Figure 5 - Yearly Labour Production Plans

57

Figure 6 - Complete Node Network for a Family

72

Figure 7 - VBA Utilization Function Flowchart

85

Figure 8 - VBA Cost Function Flowchart

89

Figure 9 - VBA Produce Function Flowchart

93

Figure 10 - Inventory Levels for Model A

95

Figure 11 - Production Levels for Models A and B

96

Figure 12 - Inventory Levels for Models A and B

97

Figure 13 - Inventory Levels by Week for Model B

98

Figure 14 - Model C Line 1 Production Example 1

108

Figure 15 - Model C Line 2 Production Example 1

109

Figure 16 - Model C Line 1 Production Example 2

110

Figure 17 - Model C Line 2 Production Example 2

110

vn

ABSTRACT
There are significant gaps in research on applied approaches to production and inventory
management in the process industries. This paper presents a hierarchical production
planning approach to scheduling the production of ice cream, a continuous batch
production process with sequence dependent setup times and highly seasonal demand.
First, a high level yearly model (Model A) plans aggregate production and inventory
levels to meet demand at the least cost possible. A mixed integer programming model
minimizes holding, transportation, labour, and production costs and is constrained by
production and storage capacities. The model selects one predefined labour scheme for
each period to produce a realistic and effective long term schedule. The short term model
(Model B) minimizes setup and holding costs and provides detailed scheduling on a
weekly basis that is constrained by the labour schedule from Model A. The problem is
modelled as a node network, where products with shared setups are grouped into families
and a Wagner-Whitin lot size model is created for each family. A mixed integer model
then determines the least expensive path from week 1 to t for all families while
maintaining the aggregated production levels. Lastly, the detailed scheduling model
(Model C) determines a weekly production sequence for the products and run lengths
determined by Model B. Model C uses an integer programming approach to minimize
changeover costs while meeting the labour schedule defined by Model A. When used
together, the three decision models produce fast, reasonable schedules at each stage and
short term operations reflect the goals of the long term plan.

Vlll

LIST OF ABBREVIATIONS

CPLEX

- C programming using the simPLEX method (LP solver software)

EOQ

- Economic Order Quantity

EROT

- Equalization of Run Out Time

ERP

- Enterprise Resource Planning

HPP

- Hierarchical Production Planning

LAFR

- Look Ahead Feasibility Rule

LP

- Linear Programming

MIP

- Mixed Integer Programming

MPL

- Mathematical Programming Language software

RKM

- Regular Knapsack Method

SKU

- Stock Keeping Unit

IX

ACKNOWLEDGEMENTS

I would like to start by thanking Keith Murdock, Glen Caissie, and Jeff Burrows from the
Scotsburn Dairy Group for their unwavering support over the last two years. Their
willingness to provide assistance and impart their knowledge without hesitation, their
dedication to the project, and the confidence they expressed in me helped ensure the
success of this work.
Thank you to my supervisor Dr. Corinne MacDonald for providing me with the perfect
balance of guidance, support, reassurance, and friendship throughout this process. Thank
you to my co-supervisor, Dr. Eldon Gunn, for the unending supply of knowledge and
wisdom. Thank you both for giving me the opportunity to take on such an incredible
challenge.

Thank you to my family and friends for their constant encouragement and welcomed
distractions. Thank you to my parents for setting an amazing example and providing me
with unending love and support.

Thank you to my supervisory committee, Dr. John Blake and Dr. Paul Dixon, for offering
their time and knowledge in evaluating my thesis.

I would also like to acknowledge the financial support provided by the Natural Sciences
and Engineering Research Council of Canada and MITACS.

Chapter 1
An Introduction to Production and Inventory Management in the
Process Industries
Production and inventory management systems manage the flow of goods through
complex production and distribution structures, delivering end products when and where
they are needed at the lowest cost. These production and distribution networks typically
span many levels within a company, from manufacturing and operations, to material
procurement, to distribution and transportation, to logistics. Often, the decisions at each
level of management are made independently of one another and are concerned with
optimizing conflicting system performance variables. Considering short term and long
term decisions simultaneously while maintaining the constraints imposed by production,
finance, and marketing requires a considerable amount of computational effort. In the
case of a multi-stage, multi-product industry, the linkages between management levels
and the specifics of the production process are even more complex.

Developing an effective production management framework consists of identifying the


natural decision levels and linkages within a company and working to compliment them.
For a production system to be effective, it must have the support of management at each
level of production. If the system's methodologies are too complex to explain in practical
terms then production managers can not be expected to have confidence in the results.
Hax and Meal (1975) developed an effective approach to production planning that
established subgoals consistent with each level of management, to allow for corrections
and coordination by managers at each stage.
Every company's breakdown will be different and identifying the management structure
is somewhat of an art form. Some industries may have only two or three levels of
decision making while others can have nearly a dozen. Neither is necessarily superior and
both will require unique solution approaches. In general, most industries will have at least

the three main levels of strategic, tactical, and operational decision making, a framework
first proposed by Anthony (1965). At the highest level, strategic marketing decisions,
such as which products to make and how much capacity to allot to production, typically
cover a timeframe of one or more years. Decision makers are concerned with satisfying
the needs of the customers and building enough capacity to produce and store what they
sell. In the shorter term, tactical production decisions, such as lot sizing and cycle stock
calculations, tend to cover only a few months into the future. Production schedulers
minimize setup and holding costs whenever possible. Lastly, daily operational
sequencing decisions may only consider one week of production at a time. Operations
managers plan to produce products in the most efficient manner possible.

Once the decisions levels in a company have been defined, models can be developed to
optimize the decisions at each stage. Some approaches focus on modelling the subproblems of this decision making structure, but coordination between the decision levels
within an organization is essential to developing and maintaining an effective production
plan in the long term. Some approaches attempt to solve for all decisions simultaneously,
but the result is a large, expensive model. The model is unlikely to match the true nature
of the problem as each level of planning within a company is concerned with different,
sometimes conflicting objectives and constraints. If the model can be solved, the level of
detail offered by developing the short term plan over a long horizon is of little value. The
optimal solution at the detailed level is almost certain to change when actual sales differ
from the forecast.

Many of the interconnecting hierarchical decisions can be successfully modelled and


automated individually as long as they are properly linked within the hierarchical
structure. A large problem that has been decomposed into smaller subproblems is easier

to manage at each stage and requires less computer power to solve. Because different
stages within the planning structure are often concerned with varying timeframes,
objectives, and constraints, developing appropriate models at each stage is simplified
considerably. However, without proper connections between levels, a short term plan
may schedule production in a way that is inconsistent with the company's long term

goals. A linkage is needed between the levels of the hierarchical structure to ensure that
the long term goals are upheld while production at the monthly and weekly level is
optimized. Typically, the results from the long term plan are translated into constraints
that are imposed on the shorter term models. The development of appropriate constraints
also requires significant consideration because if the constraints are too tight then the
plan becomes centralized and the low level models are too restricted to plan effectively.

The purpose of this thesis is to develop a production management tool for an ice cream
manufacturer to automate and support their tactical and operational production planning
decisions. At the highest level, the branch manager is concerned with the size of the
workforce and the availability of storage space. Operation coordinators focus on the
availability of products on a short term basis and deal with last minute changes in
demand from customer promotions. At the most detailed level, the production scheduler
sequences the weekly production in the most efficient manner possible while meeting all
production constraints. Decisions are normally based on expert knowledge and do not
consider the cost trade offs between holding, labour, and sequencing costs.

The company produces over three hundred distinct finished frozen goods, including
frozen yogurt, sherbet, and lactose and sugar free products, in a single production facility
with three production lines. Production is a two stage process, where base mix is created
in large batches and flavours and inclusions are added later to create a variety of finished
products. Setup times and costs are significant and sequence dependent, particularly
where base mixes are concerned. Allergen constraints and other sequencing restrictions
make daily detailed planning difficult. A more detailed description of the production
process is provided in chapter 2. Currently, production, inventory, and labour decisions
are made semi-independently and are based on experience rather than cost calculations or

mathematical models.
Most production and inventory management literature focuses on discrete manufacturing
and the techniques used are not applicable to a process industry such as food production
(Crama, Pochet, & Wera, 2001). Research that focuses on optimizing process industry

systems is often either very general or specific to one industry. Adapting the general
work to real world scenarios involves a considerable creative process because it often
incorporates simplifying assumptions and the details of acquiring and properly evaluating
data are rarely discussed. Research on applied solutions is difficult to adapt to other
problems because each industry has a unique hierarchical structure and production
process. Applied research provides a useful basis for future work but it is difficult to find
models that match the production and inventory processes of ice cream manufacturing
closely enough to be directly implemented. Chapter 3 summarizes the existing research
on general and applied production planning.
The application of Hierarchical Production Planning (HPP) involves breaking down the
complex problem of modelling an entire ice cream production process into smaller,
modular segments. Chapter 4 details the development and design of the hierarchical
structure implemented in this case. Each of the segments are treated semi-independently
and solved on rolling horizons to allow flexibility to adapt to changes in demand or
production. By designing each model to adhere to the limitations imposed by its
predecessor and introducing additional constraints, the linkages between each level are
maintained. The system is also designed to facilitate management intervention at each
level of the hierarchical structure. Data are supplied to the model at each stage by a
database that was built for this project to centralize product and raw material information,
improve communication, and manipulate the information for use by the models.

At the highest level, Model A produces an aggregate production plan for some number of
future periods based on minimising holding and labour costs. A detailed discussion of the
model is found in chapter 5. The model is constrained by the production speed of the
lines, the capacity of the freezer and warehouses, the need to meet demand in every

period, and a selection of labour schemes. Rather than allow the model to schedule
regular or overtime production without restraint, each month's schedule must be one of
twelve preselected labour combinations that mimic a variety of common weekly
schedules. Constraining the model to predefined schedules has a small negative impact
on the computation time but ensures that the results are more realistic and feasible from a

labour perspective. The products' inventory levels and demand forecasts are aggregated
based on similar production and storage characteristics. Aggregating the data leads to a
rapid solution time without significantly impacting the overall labour solution. The
problem is modelled as a mixed integer programming problem and solves in minutes on a
standard personal computer. The result is a possible labour scheme assignment by month
for the next twelve months and the associated production and inventory levels required to
meet demand in each period.

Model B is the second model in the hierarchical structure and is presented in chapter 6.
The purpose of this model is to produce a weekly production schedule that minimizes
holding costs and setup costs while meeting demand for some number of future periods
and adhering to the labour schedule imposed by Model A. Products are grouped into
families based on shared setup costs to decrease the solution time and also so similar
products are scheduled in the same period to save on setups. Utilising Wagner and
Whitin's (1958) proof that it is never optimal to place an order and bring in inventory in
the same period, the set of planning decisions is reduced to only a few production options
per family, per period. The costs of these production options are calculated and the
resulting production and cost matrices are supplied to the model. The mixed integer
program then minimizes production costs while ensuring all periods are covered and the
labour schedule is followed. The resulting family production schedule is transformed
back into individual product runs and the final output is a list of all products scheduled
for production in the coming weeks and their run quantities.

The key to a functioning hierarchical structure is proper linkages among the levels. To
test the connection between Model A and Model B, a series of trial runs were conducted
and the resulting inventory levels, which are not constraints in either model, were

compared. The results showed that Model B scheduled production within the boundaries
prescribed by Model A with no need to exceed capacity. Model B was also able to
achieve an improved level of production efficiency compared to Model A, which is based
on current actual output of the facility. Lastly, Model B maintained the anticipatory

inventory levels given by Model A without the need to impose direct inventory
constraints.

The third detailed production model, Model C, minimizes product loss and lost
production time through optimal production sequencing. The model has not been fully
implemented within the timeframe of this project but a review of previous sequencing
research and the design for the third model are presented in chapter 7. The results from
Models A and B do not depend on the completion of Model C so the system is still
functional without the last modelling level. When the detailed model is built, it will be
linked into the hierarchical structure by constraining it to schedule the products and run
lengths chosen by Model B. In the mean time, this task will continue to be carried out on
paper by the production scheduler.

Chapter 8 summarizes the findings, challenges, and observations resulting from this
work. The lack of existing research in the food industries and ice cream in particular
necessitated a novel approach to the production inventory problem. General approaches
and previous projects served as useful starting points and enforced the notion that
practical implementations require considerable effort and customisation for maximum
impact.

The data examples used throughout this thesis are presented for illustrative purposes
only. In the interest of confidentiality, they have been selected to be representative of the
company's typical production characteristics and should not be interpreted as direct
values.

Chapter 2
The Ice Cream Production Process
Production and inventory systems are complex structures, constrained by production
capacities, storage space, labour availability, technological capacities, demand
requirements, and customer service levels. Expenses to be considered include the cost of
production, labour, setups, transportation, inventory holding, and overhead. Stochastic
demand forecasts and production throughputs are common and necessitate adaptive
solutions to account for the discrepancies between expected and actual outcomes. To
appreciate the challenges of modelling ice cream manufacturing it is useful to understand
the details of the process itself. This section provides an outline of the production process
with distinct attention paid to the areas that are most difficult to model.

Before this project began, the company made the long term, strategic decision to produce
the majority of their ice cream tub products in a single facility consisting of three
production lines and a warehouse. Tubs come in six sizes and can be made from paper or
plastic, with deep or shallow lids, with or without a seal. Product types include economy,
premium, no sugar added, lactose free, and light ice cream, as well as sherbet, sorbet, and
frozen yogourt. In total, the company produces a few hundred unique products, each
identified by their own Stock Keeping Unit (SKU). In addition to the onsite warehouse,
the company has access to some additional warehouses to store and distribute finished
goods. The decisions made at this level focus on how to maximize the use of these
production resources to meet customer demand as efficiently as possible.

Production planning is naturally a top down decision making process. At the highest,
long term level, planners decide how much production capacity to allot in each period
and how much inventory to store to meet demand. The goal is typically to minimize
labour costs and holding costs over a long horizon such as one year. Ice cream demand
follows a distinct seasonal pattern, with peaks around Easter, in the summer, and at
Christmas (See Figure 1 for an example. Units have been intentionally excluded). The

forecast is also subject to uncertainty, particularly because ice cream sales are sensitive to
weather conditions. Customers are most likely to purchase ice cream on hot summer
days. The options available for meeting seasonal demand are changing production
capacities when possible or storing inventory in periods of low demand to help meet the
requirements in periods of high demand. The best strategy or combination of strategies is
not always clear and will depend on the cost of production versus the cost of holding
product. Ice cream production is particularly difficult to plan because both labour costs
and storage costs vary by shift length and product type. Furthermore, although capacity
planning considers a long term horizon to capture the full season of demand, the strategy
may need to be updated regularly throughout the horizon as expected sales and
production differ from the actual outcomes.

Ice Cream Demand Pattern

/ / +S/SSS
Figure 1 - Seasonal Ice Cream Demand Pattern

Unlike many continuous process facilities, ice cream plants can not run continuously. The
Canadian Food Inspection Agency requires that dairy production lines be completely
washed and cleaned every 24 hours. The company typically runs 8, 10, or 16 hour
production days and cleans the facility overnight. Because of the cleaning requirement, a
product's production cannot be shut down at the end of the night and then started up
again the next morning. Assigning labour costs to the ice cream produced during these
shifts is a challenge because the relationship between the workforce size and ice cream

output is not linear. In fact, longer production days are more efficient and less expensive
per litre than short ones. During a 16-hour production day, the company can produce
more than twice as much ice cream as during an 8-hour production day because there is
one less initial setup and shutdown procedure involved. Longer production days are less
expensive because some labour requirements, such as quality control laboratory work,
can be spread out over the longer hours rather than increased. For example, two
laboratory technicians are required each day to test product and address any quality issues
that may arise during production. During an 8-hour shift, both technicians work the same
8-hour shift together. During a 16-hour shift, one technician works the first 8 hours, the
second works the last 8 hours, and the two of them share the product testing for the day.
Therefore, it is more cost effective from a production point of view to schedule 16-hour
production days versus 8-hour days. However, with the exception of the summer months,
16-hour production days produce far more ice cream than is needed to meet present
demand.

If the decision is made to schedule longer, more efficient production days, then the excess
product must be stored in frozen warehouses at -20F until such time that it can be sold.
Cold inventory storage and transportation is expensive and must be carefully planned to
minimize costs. Costs are typically calculated per pallet of finished goods and vary from
product to product. Items are batched and wrapped on pallets for easy storage and
handling, and depending on the size, type, and method of packaging preferred by the end
customer, a pallet can contain anywhere from 800 to 1600 litres of ice cream. The other
cost associated with storing inventory is the cost of having money tied up in inventory,
typically represented as some percentage of the product value per year. Expensive
premium products represent a higher investment than economy goods. Because the
storage and holding costs vary across product groups, determining an optimal balance

between efficient labour schedules and low holding costs requires extensive analysis.

The company's branch manager is responsible for selecting an appropriate yearly


production plan, often developed through discussions with the production scheduler. In
the past, the company has tried increasing production as early as February and as late as

10

May to meet the summer demand peak. Unfortunately, no method of comparison between
the costs of various strategies exists, and management can only speculate on which is
best. A tool that can trade off the cost of production versus the cost of storage for each
group of product will help management make an informed decision. The tool must be
designed to accommodate changes in the forecast, both immediate and in the future, due
to weather conditions or other factors such as last minute flyer promotions.

Once the production and inventory levels for each period have been established, the
operations coordinators are responsible for determining the short term production demand
on a weekly basis. Production demand is list of the SKUs to produce in the upcoming
week to meet demand and maintain safety stock levels. Considerations at this stage
include the current inventory levels for each product, the forecast for the next few
months, and minimum run lengths for each product. Forecasts are more accurate in the
short term as customer orders are received and information on upcoming promotions
becomes available. The production demand is then passed to the production scheduler,
who is responsible for sequencing the products into a detailed weekly schedule in the
most efficient way possible. To appreciate the challenges at these levels of decision
making, it is helpful to understand the intricacies of the production process itself.

First, milk is delivered from farms across the province and stored in milk tanks at the
plant. The base mix for each product is prepared the night before production by
combining milk and other mix ingredients in a large blender (Figure 2). Once blended,
mix is piped into one of several pasteurizing vats, where is it heated to kill any bacteria.
To avoid damaging the tank during the heating process, the vat must be completely full,
which constrains the amount of mix that can be produced to a small or large batch. The
pasteurizing stage forces an otherwise continuous production process into a fixed batch

procedure. After pasteurization, the mix is piped through a homogenizer and a plate
cooler before arriving in one of eight storage tanks. The mix sits in these tanks to age
overnight.

11

Figure 2 - Ice Cream Production Process

When the three production lines start up each morning, the mix is pumped from the tanks
down to the production floor and into flavour vats. There, flavours such as strawberry,
orange, or mint can be combined with the mix to create a unique ice cream. The product
is then chilled in a small freezer and the proper portion of air is whipped into the mix to
improve its consistency. Next, inclusions such as fruit, nuts, or ripples are added. Then
the finished ice cream product is poured into tubs that are lidded, coded, sealed, and
passed through a metal detector. All finished products enter the spiral freezer where they
are chilled over the course of four hours and emerge hardened and ready for storage. All
products are stored in the adjacent warehouse until the quality laboratory clears it for
sale, which generally takes two to three days.
The basic components of the ice cream manufacturing process presented here are
standard in the industry (Goff, 1995). Although the mechanisms used at each individual
stage may vary from one manufacturer to the next, the flow of product and necessity of
each stage remains unchanged. For example, some companies utilize continuous

12

pasteurization procedures, removing the need to produce mix in fixed batch sizes, but the
need for pasteurization itself does not change.

The facility currently runs three production lines with the possibility of installing two
more in the next few years. The lines are very similar but do have slightly differing
production speeds and capabilities. Line 1 is typically used to produce the large 11.4L
tubs and premium 1L products. Line 2 is the only line with three separate flavour vats for
producing neapolitan ice creams. Many products can be produced on all lines, some can
only be produced on one line, and all products have a "preferred" line that the operations
and production managers favour. The operations coordinators and production scheduler
must be conscious of these line restrictions when scheduling products or they may
schedule production demand that can not feasibly be produced in one week.

As mentioned, mix must be produced in one of two possible batch sizes to avoid
damaging the pasteurization tanks. Mix is expensive and the company is continuously
working to minimize mix loss. Therefore, when a batch is produced, all the mix should be
converted into finished goods. Because mix lasts for 48 hours after production, finished
goods must be scheduled for production within two days of the mix production. In other
words, the mix batch restriction translates directly to a constraint on the amount of
finished goods that can be produced at one time. The problem is further complicated by
the fact that one base mix can be converted into many different finished good products
through the addition of flavours and inclusions later in the process. For example, butter
pecan or mint chocolate chip ice cream both start out as a premium white mix. In fact, to
produce the company's hundreds of distinct finished goods requires only a few dozen
base mixes. The relationship between the base mixes and finished goods, combined with
the batch size restrictions for mix production, creates an interesting problem for

production coordinators. Scheduling products with the same base mix in the same week
spreads out the impact of this restriction among all products and simplifies mix
production coordination.

13

Common base mixes also affect changeovers procedures. Each line can produce multiple
finished goods per day. The three main types of changeovers required are, in order of
complexity, a packaging change, a mix change, and a flavour change. Some changeovers
are a combination of all three types. Changeovers involving packaging must be
performed by maintenance staff and are the most time consuming. To switch between
two base mixes, the line operators must flush out all mix in the freezer and on the line.
The leftover mix is unsalvageable and results in significant product loss. A flavour
change involves switching between two products with the same base mix but different
inclusions. The process only requires cleaning specific sections of the line and most of
the mix is saved. Flavours or mixes containing allergens, such as peanuts, wheat, or
bacterial cultures cannot be properly cleaned out of the system during the day and must
be produced at the end of the production day so they can be eliminated from the system
overnight. The production scheduler is concerned with all these production components
when attempting to develop the weekly production sequence. The operations coordinators
make their decisions independently of the production process and when products with the
same base mix are scheduled for production in the same week it is only by chance.

Due to significant product loss and lost production time, setups are expensive relative to
the value of the product, and run times should be sufficiently long to justify the cost of
the changeover. The production scheduler has developed a list of minimum run lengths
based on rough estimates of what is considered acceptable by the production manager,
but these estimates are not based on setup and holding costs or production data. The run
lengths also do not correspond to the estimated run out time of the products. Lastly, the
production scheduler is constrained by the labour schedule dictated by the branch
manager. If the production demand does not utilize the entire schedule then the scheduler
may increase some run lengths or look ahead in the forecast and add another product that

is close to running out. When the production scheduler has finished, the resulting run
lengths have little to do with mix batch sizes, although the scheduler does attempt to
minimize the total number of mixes needed each day. Clearly the current approach is
time consuming, subject to human error, and not guaranteed to be optimal.

14

The company needs a system than can provide decision support at all three levels of
management. The highest level will help plan labour and inventory requirements on a
long term horizon. The short term model minimizes setup and holding costs while
reducing mix loss through setups and limits the number of mix types produced per day.
The final model will optimize machine sequencing. Most importantly, the models link
together so that the more detailed decisions meet the goals set out by the aggregate levels.
With the help of these models, management can make faster, better decisions at each
stage in the planning process.

15

Chapter 3
Background on Production Planning in Process Industries
The characteristics of a production process determine which strategies for planning and
scheduling are most appropriate. Discrete manufacturing begins with many raw materials
that converge to produce only a few distinct finished goods. Process industries are
businesses that add value to raw materials by mixing, separating, forming, or chemical
reactions. Fransoo and Rutten (1994) expanded on the process definition and noted that in
general, many finished goods are produced from a limited number of initial ingredients.
Processes may be either continuous or batch and generally require rigid process control
and high capital investment. Food production is often categorized as a process industry
and ice cream manufacturing is no exception, transforming milk and other raw
ingredients into a more valuable finished product through mixing, heating, and freezing.

Most production and inventory literature tends to fall into one of three categories:
discrete manufacturing, industry specific, or highly generalized. Discrete manufacturing
has received the most research attention with the development of just-in-time scheduling,
Kanban systems, job shop scheduling algorithms, material requirements planning,
enterprise resource planning, constant work-in-progress systems, and much more. From a
high level perspective, some of the applications developed for discrete manufacturing can
be adapted for continuous processing. Unfortunately, for the more detailed planning and
scheduling requirements, discrete systems fail to address the needs of process industries.
Crama, Pochet, and Wera (2001) note that continuous processes often deal with
perishable materials, detailed routing information, and much more complicated
scheduling requirements that discrete systems are not designed to address.
Surveys of the process planning literature have shown that, of the few comprehensive
examples of production planning in a process environment, most focus on industry
specific solutions to a problem rather than attempt to develop general approaches
(Fransoo & Rutten, 1994; Loos & Allweyer, 1998; Dennis & Meredith, 2000). Dennis

16
and Meredith (2000) suggest that this is because "the process industries have traditionally
been lumped together and contrasted from the discrete industries as a whole, thus leading
to misunderstandings regarding individual process industries," Not all continuous
processes are created equal, and concepts that are applicable to one may be unsuitable to
another. Rather than spend time worrying about how a particular approach can be adapted
for other industries, the research focuses on solving the problem at hand. The result is a
collection of practical and valid models that are specifically tailored to a particular
industry and are difficult to adapt for any other use.

The generalized process planning literature formulates important groundwork for process
scheduling but normally does not consider the practical applications of the material.
Simplifying assumptions are used to develop the methodologies but these assumptions
rarely apply in real scenarios. Examples include assuming constant demand, nonsequence dependent setups, unlimited capacity, fixed capacity, insignificant holding and
setup costs, and more. The research also tends to address extremes, such as a purely
process flow oriented system or a purely batched system. Some of the decisions involved
in developing an effective, valid real world model include how to calculate and estimate
data, aggregate information into appropriate groupings, identify production constraints,
and develop a forecast. General work focuses more on the models and their structures
than how to effectively implement them with real data. Translating the general research
into applied research requires considerable creative effort.

The purpose of this section is to summarize the existing research on production and
inventory management systems for process industries and confirm that the work
presented in this thesis is original and valid. There is currently no literature available on
production-inventory systems for ice cream manufacturing. Some modelling applications

have been applied to production processes that are similar to ice cream, and these serve as
useful examples of the implementation process and demonstrate its validity in an
industrial setting. However, each of the systems is closely tailored to a particular industry
and is not suitable for direct application to this problem. The general research is useful
because it is described in broad terms and can be adapted to a variety of scenarios.

17

Unfortunately, its flexibility is a result of simplifying assumptions and broad


generalizations that make it easy to define but difficult to implement in practice.

3.1 Production and Inventory Management Applications


One of the oldest examples of a comprehensive production management system is Hax
and Meal's (1975) four level scheduling system that was developed for a process similar
to that of a chemical plant. The problem involved many production plants with constant
production capacity and finished goods with shared setup costs and seasonal demand
patterns. They chose a hierarchical structure because it would not be computationally
possible to optimize the entire system, and also because it was important for them to have
managerial input at each stage in the process. Hax and Meal also defined a three-level
aggregate product structure. "Items" are finished goods, ready to be shipped to
customers. They are the most detailed level and may be defined by individual SKUs.
"Families" are groups of items that share a common setup cost. Manufacturing items in
the same family together results in cost savings. "Types" are groups of families that share
common production rates, storage costs, labour requirements, and demand patterns. In
their three-tiered item structure, decision making was broken down into four levels: 1)
Products are assigned to plants using mixed-integer programming. 2) Seasonal stock
requirements are calculated at the type level using linear programming. 3) Detailed
schedules are prepared at the family level using standard inventory control methods. 4)
Individual run quantities are calculated for each item using standard inventory control
methods. The purpose of the plan was to reduce inventory and production costs while
improving customer service levels.

Hax and Meal's hierarchical breakdown is notable in production planning because it was
designed to mimic a company's general managerial structure and allow for overrides at
each step in the solution. The models themselves are less adaptive to other industries
because they are tailored to a rather simplistic manufacturing process with a constant
production capacity and no sequencing concerns. The models also ignore the trade off
between setup costs and holding costs and instead determine run lengths based only on

18

equalizing run out times and meeting family demand levels. Nevertheless, the
hierarchical structure and basic foundations of Hax and Meal's models provide a very
useful framework for use in industry.
Smith-Daniels and Ritzman (1988) developed a general lot sizing model for process
industries and applied their method to a situation representative of a food processing
facility. They noted that determining optimal lot sizes in a fixed capacity environment
with significant setups is nearly impossible. The problem is compounded by sequence
dependent setup times that affect whether any feasible production schedules exist for a
particular set of products. To address the effect that sequencing has on proper lot sizing,
they developed a mixed integer programming model that could make both decisions
simultaneously.

Smith-Daniels and Ritzman's model does not consider the high level decision of how to
plan production for the aggregate long term. The model is intended for a production
facility that operates at maximum capacity so planning workforce levels is not necessary.
The facility also produces continuously with no shutdowns. In the case considered in this
thesis, the strict regulations imposed on dairy production requires that the system be
completely cleaned and sterilized each night, effectively resetting the starting conditions
each morning. There is no opportunity to produce uninterrupted, and this significantly
affects the modelling requirements. The model also allows for the consideration of
multiple production stages with inventory storage between each stage. The multi-stage
extension makes the model significantly more complicated than the ice cream problem
necessitates, and the assumption of an uninterrupted production facility makes the results
inapplicable to a facility with daily shutdowns.
In 1989, the Kellogg Company developed a large-scale linear program called the Kellogg
Planning System (KPS) to help manage the production, inventory, and distribution
schedules for their cereals and other food products (Brown, Keegan, Vigus, & Wood,
2001). The KPS is a very large representation of Kellogg's entire production and
distribution system. Much of the system's implementations are for tactical planning, such

19

as where a certain product should be produced or where a new facility should be located,
but it also handles the production schedules of over 600 SKUs in 27 locations on roughly
90 production lines. At the operational level, the KPS determines appropriate production,
packaging, and inventory schedules on a weekly timeframe for the next 30 weeks. The
problem is modelled as an MIP with 100,000 constraints, 700,000 variables, and 4
million non-zero coefficients and solves in two to four hours.
The developers of the KPS estimate that it will save the company between $35 and $40
million annually when the project is complete. The system suits Kellogg's planning needs
although there are plans to improve the system in the future. The model does not account
for cost savings realized through appropriate product sequencing and is also unable to
prevent impractical production run lengths from being scheduled. The model is
constrained by labour schemes that have been decided upon beforehand rather than
allowing the model the flexibility to choose its own labour scheme. Perhaps most
importantly, the model does not allow managerial input at each level of decision making.
Once the model is solved, production managers gather together to discuss the results and
use them as a basis for planning production in their plants. If the model assigns a product
to a particular plant based on minimising cost but management would prefer to produce it
closer to the end customer for service level purposes, then the only course of action is to
make the changes and update the entire model. In fact, the authors estimate that the KPS
is run roughly 30 times a month to answer a variety of what-if questions.

Bowers and Jarvis (1992) developed a three-level hierarchical planning structure to


integrate decisions in a structured framework that 1) calculated seasonal stock
requirements on a yearly basis, 2) assigned groups of products to their most effective
production lines, and 3) developed a reasonable production sequence to minimize

changeover times. The production facility under consideration included both make-tostock and make-to-order items with sequence dependant changeover costs. The authors
noted a lack of existing literature in both the make-to-order and sequence dependant
cases. Similarly to the KPS model, labour availability is fixed and imposed as a constraint

20

on the model. Production capacity and in-house storage are other major considerations, as
is the fact that the production lines are non-identical.
The allocation model in this hierarchal structure uses an average production speed that
includes setups and therefore does not select optimal product run lengths. Instead, it is
concerned only with allocating each group to the line that will produce it the most
efficiently. Allocation among lines is less of a concern at the ice cream facility where the
difference in speed and production quality among the machines is almost negligible. In
addition, the allocation model is only capable of scheduling a maximum of one month's
worth of product at a time regardless of whether it is optimal. Also, because this model
can split up production of a family among multiple lines, some additional disaggregation
is required before the information is passed on to the third model.

Allen and Schuster (1994) developed a hierarchy of models to help with the often trial and-error decisions frequently encountered in the process industries. Their research
adapted the hierarchical planning method for Welch's, a make-to-stock food
manufacturer. Products were aggregated into families based on shared setup costs and
family requirements were calculated for the next 6 months to minimize setup and holding
costs. Their family planning model differed from most hierarchical models in that it
combined the aggregate and disaggregate problems into one. It solved for four weeks into
the future (with setup costs) as well as the next five months into the future (ignoring
setups costs). If a family was produced in the first four weeks, then its setup cost was
included in the objective function and its setup time was subtracted from the available
production hours. Then a disaggregation of the family plan attempted to meet the family
model production as closely as possible by penalizing production deviations in the
objective function while minimizing holding and setup costs. The entire system can be
implemented on a spreadsheet in only 2 minutes per production line. To maintain
simplicity and ease of computation, optimality was sacrificed in the disaggregate model
and each family had to be individually disaggregated.

21

The Welch's models are complicated by the need to include flexibility for make-to-stock
products and simplified by dedicated production lines. By forcing the disaggregate model
to match the family planning production so closely, no consideration is given to optimal
lot sizes and producing for an integer number of future periods. The models also do not
consider any high-level decision making such as yearly labour schedules. Instead, regular
and overtime production is calculated directly in the family planning model. Developing
the detailed schedule at the lowest level is also left up to the production scheduler.
Although it is generally agreed that a hierarchical planning approach is appropriate for
large scale problems, the best method of implementation is still widely debated.
Specifically, the method of aggregating and disaggregating information for the purpose of
decision making has many company specific interpretations. As well, the appropriate
number of levels in the hierarchical structure depends on the individual industry in
question. Hax and Meal's four-level hierarchical structure has been adapted to a variety
of manufacturing scenarios and appears often in other literature (Bitran, Haas, & Hax,
1981; Erschler, Fontan, & Merce, 1986; Silver, Pyke, & Peterson, 1998). Bowers and
Jarvis (1992) developed a different three-stage hierarchical system while Allen and
Schuster's (1994) hierarchical model incorporated only two levels of decision making.

All the modelling examples presented here utilize finite-horizon models to schedule
production for an infinite-horizon process, a method which is effective if properly
implemented on a rolling schedule. The problem is that most planning models are
required to meet the demand forecasts in every period, and forecast data is uncertain and
subject to change, particularly as it extends further into the future. As Baker (1977) points
out in his study of rolling schedules, "if a firm is to operate indefinitely, an optimal set of
decisions would depend in principle on data from an infinite number of future periods."

Because demand forecasts have their limits and are most reliable in the immediate future,
it is appropriate to utilize methodologies that can ignore the unreliable future information
and adapt to changes in the immediate forecast. A rolling model plans for several periods
into the future but only the first period is actually implemented. When the next period is
ready to be scheduled, the model is updated with current information and solved again.

22

The implementation can continue indefinitely as long as the production process itself
does not change.
Baker (1977) conducted an experiment in which a dynamic lot size model was
implemented on a variety of rolling schedules and the results were compared against an
optimal solution solved using the Wagner Whitin method. The experiments covered
multiple finite horizon lengths, varying replenishment cycles, and constant, trend, and
seasonal demand. Baker found that rolling schedules on average produced results that
were within 10% of optimality, and that this could be improved to 1% with proper model
construction. He concluded that well-designed rolling scheduling models can produce
efficient and dependable results in an uncertain, infinite-horizon environment.

The applications presented here have a variety of advantages, but none of the systems can
be directly applied to the ice cream production process. Meeting the unique needs of this
food processing industry requires additional consideration. The existing models and
hierarchical schemes demonstrate that such systems are both attainable and valuable to a
company. The production environment presented in this thesis required further research
to evaluate these models and other general applications to modify them to manage a high
volume, multi-product, continuous and discrete production facility with significant
changeovers.

3.2 General Production and Inventory Management Models


The results of the practical applications of production inventory models clearly
demonstrate the importance of selecting an appropriate overall framework to suit the
needs of the industry. Kellogg sacrificed computing speed for a holistic model that
considered all decisions simultaneously (Brown, Keegan, Vigus, & Wood, 2001). The
hierarchical model designed for Welch's made no claims of optimality but could be
easily implemented on a simple computer in an Excel spreadsheet (Allen & Schuster,
1994), while Bowers and Jarvis (1992) incorporated make-to-order items into their threelevel hierarchical structure. The purpose of this section is to present existing research on

23

various production planning structures and explore their advantages and disadvantages as
they relate to ice cream production.

Production-inventory decisions are often classified as strategic, tactical, or operational, a


framework first proposed by Anthony (1965). At the highest level, strategic decisions are
concerned with the design of the production and distribution network. They determine the
number of plants and warehouses to build and their locations and generally consider
several years into the future. On a shorter term basis, aggregate planning considers the
product mix to be produced and workforce size in each planning period and inventory
levels. Tactical decisions address the effective allocation of all available resources to
satisfy demand. Operational planning is the lowest level and deals with scheduling and
production on a day-to-day basis.

An even simpler classification breaks the problem down into a two level framework
based on planning versus scheduling (Birewar & Grossmann, 1990). At the macro level,
planning is concerned with the allocation of capacity and resources and covers an
extended period of time such as months or years. At the micro level, scheduling is
concerned with optimizing the use of the available resources through proper sequencing
and lot sizing decisions.

Regardless of how the levels are defined, it is clear that decisions made at each level have
strong interactions with one another and treating them in isolation can result in
ineffective production systems. Strategic and operational decisions are often made
independently because the higher level plans are too general to provide useful operational
boundaries in the short term. This leads to detailed operational decisions that may meet
monthly or weekly demand and production capacities but fail to uphold the annual

production plan. Mathematically speaking the problem takes on the form of infeasible
solutions or suboptimization problems. To manage this problem, it is important that the
solution to the high level subsystem be imposed as a constraint on the next level in the
structure. Linking the levels of the hierarchical structure is difficult because the decisions

24

are often concerned with varying levels of detail and an appropriate linkage method may
not be initially clear.
Some early research focused on modelling the process as a whole and solved for all
decisions simultaneously, from long term planning to short term scheduling (Manne,
1958; Dzielinski & Gomory, 1965; Lasdon & Terjung, 1971). Monolithic models such as
these can be challenging or even impossible to fit to a particular production and inventory
management system. Simplifying assumptions are generally needed to adapt equations to
the processes and these approximations detract from the model's accuracy. Monolithic
models are not designed to accept managerial input at the various levels within the
decision making structure. In fact, the models are typically so complex and difficult to
understand in detail that it is hard for management to interact with the model and it may
be phased out in favour of simpler approaches. The monolithic approach also requires
detailed product data over the entire long term planning horizon, which is often difficult
to estimate and becomes less accurate as it extends further into the future. Solving these
large, complex models requires extensive data collection and manipulation followed by
very computationally

intensive optimization. For example, Kellogg's

practical

application model solved in two to four hours (Brown, Keegan, Vigus, & Wood, 2001)
and would sometimes suggest unrealistic solutions that required additional adjustments.
Birewar and Grossman (1990) developed a model to solve for planning and scheduling
decisions simultaneously with an LP formulation that they felt could be easily adapted to
a variety of production scenarios. The implementation required first solving an LP model
and then modifying the results to round batch sizes down to integer values. Rounding the
results of an LP model is not straightforward and can significantly affect the model
solution.
Advocates of the monolithic model claim that the HPP approach of subproblem
optimization can achieve only suboptimal results (Graves, 1982). If a system is simple
enough to model appropriately and the company has the processing power and time to
spare, then a monolithic model can provide an optimal solution to a given problem.
However, these results are only optimal based on current conditions and detailed long

25

term forecasts. The moment actual sales deviate from the forecast, unplanned downtime
affects production, or products are added or discontinued, the plan is no longer viable. In
a situation with any uncertainty, whether in sales, production, transportation, or storage,
the optimal short term plan is almost sure to change.

Other methods of management take a different approach and suggest that the level of
planning detail paid to each individual item should decrease based on its overall impact
on the company. The ABC classification suggests that it is common for 20% of the SKUs
within a company to account for 80% of total annual dollar usage and decision making
should be allocated accordingly (Silver, Pyke, & Peterson, 1998). A common suggestion
is that the top 55% to 65% of the total SKUs be monitored by computers and decision
systems, while the remaining SKUs, which are numerous but account for a small amount
of total dollar investment, should be managed in aggregated groups and with simple
monitoring systems.

Silver (2004) discusses a variety of methods for solving large mathematical models. One
solution is to use heuristics, which are applicable in situations where the problem being
modelled is too large to optimize and simplifying assumptions are required. More
specifically, "problem decomposition and partitioning" is a heuristic that consists of
taking a complex problem and reducing it into simpler sub-problems that can be solved
independently, sequentially, or iteratively. The sequential solution method is applied to
production planning by first solving an aggregate plan, then a family schedule, followed
by a detailed plan. Aggregated high level plans ensure that long term considerations are
taken into account when making short term decisions. Short term plans must be designed
to adhere to the constraints imposed by the long term models while optimizing variables
on a more detailed level. This particular type of problem decomposition and partitioning
is the basis for what is known as Hierarchical Production Planning (HPP).

Most of the research available on HPP argues for implementing it in a production


environment (Bitran, Haas, & Hax, 1981; Bahl, Ritzman, & Gupta, 1987; Bowers &
Jarvis, 1992; Bitran & Tirupati, 1993; Allen & Schuster, 1994; McKay, Safayeni, &

26
Buzacott, 1995; Loos & Allweyer, 1998) while only one paper (Buxey, 2005) was found
that suggested implementing any sort of mathematical production plan is a wasted effort.
Bitran, Hass, and Hax (1981) developed two approaches to hierarchical planning with
"equalization of run-out time" and "regular knapsack method" disaggregation procedures.
They conducted an experiment based on data from a rubber tire manufacturer to compare
the results of their rolling horizon HPP methods with optimal, perfect knowledge MIP
fomulations. The tests demonstrated that the HPP system was an effective method to plan
production and scheduling at the tactical and operational levels. Their results were near
optimal without requiring the same level of significant computational power and data
collection. In addition, the MPI solution times were impracticably high compared to the
quick sublevel HPP optimizations. They also noted the advantage of implementing a
system that parallels the hierarchical structure of management levels within a company
and allows for interaction at each step.

McKay, Safayeni, and Buzacott (1995) note that in some cases, traditional HPP methods
can be easily applied with few changes, while other situations require extensive
modifications and even others are completely unsuited to HPP. The differences between
industries that cause problems include the range of complexity of the production
structure, the importance of changeover times and costs, the possibility of campaign
scheduling, the stability of product demand and product shelf life, and more (Loos &
Allweyer, 1998). As a result, the number of levels in an HPP is not a prescriptive value
that can be applied to all manufacturers. Some research has been developed with only
two levels, while others have gone as high as seven. The decisions made at each level can
also vary greatly, and again depend on the type of manufacturing setting in question.
Lastly, feedback can be passed from a lower level up to a higher one, indicating the

quality of the decisions made. However, the higher level will likely not have enough
information available to understand the reasons for this quality, and can only guess at
possible improvement measures. McKay et al feel that in rapidly changing industries
(electronics, ceramics, etc.) an HPP is not a suitable method for scheduling, as the lack of
communication between levels makes it impossible to handle so much uncertainty.

27

A cautionary note is found in Buxey's (2005) paper on reconciling theory with practice.
Buxey conducted a survey to determine why production managers fail to utilize the
aggregate planning tools available to them, and instead prefer to develop their own crude
methodologies. Buxey's case study consisted of interviews with management from 42
manufacturers in South-Eastern Australia. The plants varied widely in size, production
practices, and demand peaks. He summarized his findings and categorized the strategies
used by each company as either "level", "chase", or "mixed". He found that no company
was using any aggregation-disaggregation methods.
Buxey concluded that further refinements of aggregate planning and mathematical
techniques would be wasted efforts and that every operations manager should employ a
chase strategy. He felt that flexibility and just-in-time production were the most
important ideals for every production facility to consider, and that long-term planning
issues can be handled with a bit of (semi) aggregate long-term forecasts and last-minute
manoeuvring. What Buxey's research does show is that successful planning systems must
have the support of all levels of management. The system must be easy to implement,
update, and solve on a regular basis. The end users must be considered at each step in the
process and the system must be designed to meet the needs of the company as a whole, or
the system is unlikely to be utilized.

28

Chapter 4
The Hierarchical Modelling Approach
This chapter details the selection, development, and resulting design of the hierarchical
modelling approach used to build the production and inventory management system. Also
discussed is the centralized database built to coordinate data between the three models.
The modelling approach chosen for this problem is an integrated series of hierarchical
production models that plan for production on an annual, weekly, and daily time frame.
By breaking the problem into small manageable pieces, it can be solved quickly and
accurately.

The breakdown shown in Figure 3 is designed to coincide with the company's existing
management structure. Each of the three levels and their corresponding models represent
a decision support tool designed to provide management with the knowledge they need to
make quick and informed decisions. The production process described in Chapter 2
outlines the long term decisions made by the branch manager, the weekly scheduling by
the operations coordinators, and daily sequencing by the production scheduler. The threelevel hierarchical breakdown used here corresponds with these levels. At each stage, the
centralized database provides the models with the data they need to make informed, up to
date choices. Once the model output has been implemented, the actual production
characteristics may change and can be fed back into the system to keep it up to date.
Linkages between the outputs of the high level models and the constraints imposed on the
lower level models help keep the system results feasible from one stage to the next.

29

Branch
Manager

DATABASE

LP MODELS

MODEL
OUTPUT

Holding Costs
Labour Costs
Yearly Forecast

Model A:
Min holding and
labour costs

Labour
Schedule by
Month

Long Term
Production and
Inventory Levels

Production List
with Run
Quantities by

Cycle Stock
Inventory Levels

Weekly Forecast
Setup Costs
Holding Costs
Operations
Coordinators

Production
Scheduler

Production
Matrix
Cost Matrix
Sequencing
Rules
Changeover
Cost Matrix

Model B:
Min holding and
setup costs

Model C:
Min setup costs

ACTUAL

Week

Weekly
Sequencing,
Line
Assignments

Actual Line
Capacity

Figure 3 - Hierarchical Production Plan Flowchart for Ice Cream Production System

4.1

Production and Inventory Management System Database

All model data is pulled from a central database that was designed to provide the
company with a single location for recipe storage and reports on ingredient requirements,
product costing, and mix schedules. The reports provide valuable information to the
production schedulers, the financial department, branch managers, and the research and
development team. Model data stored in the database includes aggregated forecasts,
holding costs, production costs, labour costs, sequencing restrictions, and more. Because
keeping the database information up to date provides the company with immediate
benefits in addition to accurate model data, the end users will be motivated to maintain
the data. The database is also designed to facilitate updates by allowing the users to input
data in the most convenient manner possible.

Information stored in the database includes the ice cream recipes, raw material costs and
descriptions, detailed finished goods information, product groupings by type and family,
the yearly production forecast, warehousing details, and labour costs. The recipes, raw
material costs, and target weight for each finished good are used to calculate the standard
cost of one tub of product. The tub cost is used to calculate the holding cost for each

30

product as a function of dollars invested in inventory. The product groupings by type and
family are used to aggregate storage costs, production costs, and demand for use in the
models. As new products are added, the production scheduler is responsible for assigning
the new products to an appropriate group and family. The recipes and raw material
descriptions provide valuable allergen information about each product and are used to
produce a list of sequencing restrictions for production. The production scheduler and the
research and development department are responsible for maintaining the database
information and ensuring it is always up to date. Some database information such as raw
material costs and finished goods inventory is pulled directly from the company's internal
database and does not require any redundant data entry.

All the data needed for this model is entered into the database in a format that is easy to
understand. The database then manipulates this information into the necessary units such
as "production rate in terms of 2L tubs" or "freezer utilization" with a few simple queries.
The database also aggregates data quickly and easily so it can be directly imported by the
models. The modelling software pulls this information from the database automatically,
limiting the amount of interaction between the model and the end user.

4.2 The Yearly Aggregate Plan


The first level of the hierarchical structure is the yearly aggregate plan, where long term
production levels are determined by the branch manager. Every few months, the manager
assesses the upcoming demand forecast and decides when to produce on an 8-hour, 10hour, or 16-hour schedule. The manager must consider the production capacities of each
labour schedule, the availability of warehouse space, and the demand patterns of
hundreds of finished goods. The challenge is that each product group has its own unique
production speed, warehouse utilization, and demand pattern and it is difficult to predict
the resource requirements for such a diverse collection of products.

Model A is designed to assist the branch manager by selecting an appropriate labour


schedule and seasonal stock levels per month to meet demand for all products over a one

31
year horizon. The objective of the model is to minimize labour and inventory holding
costs in a seasonal environment with limited capacity. The model is based on aggregated
product data because many products share similar production and storage characteristics.
For example, products of the same size tend to have similar production speeds and take
up the same amount of space in the warehouse. By grouping these products together, the
model complexity is reduced but the resulting labour schedule and inventory levels are
still accounted for in the model.

Model A is formulated as a mixed-integer programming problem that is constrained by


the production line capacity, spiral freezer capacity, and warehouse space. A one year
horizon was chosen to cover one full cycle of the seasonal demand pattern, which can
increase as much as 600% during peak periods. A two or more year horizon may also be
appropriate if reliable forecasting and costing information is available for future periods.
The model is intended to be updated and solved once every quarter to maintain a rolling
schedule that is consistent with the company's existing forecast updates. The model will
provide support for the branch manager to develop and modify the yearly labour plan for
the plant. The labour plan will also constrain the production demand scheduling in the
second level of the hierarchical structure. The detailed Model A discussion is in chapter
5.

4.3 The Weekly Scheduling Plan


After the yearly labour schedule has been determined, the operations coordinators are
responsible for compiling a list of products and their run quantities to be produced in the
upcoming week to utilize plant capacity and maintain the safety stock levels of all
products. Each week, the operations coordinators examine the current inventory levels for
all products and their upcoming demand forecast to determine which products must be
scheduled to avoid dropping below their safety stock levels. The run quantities are based
on rules of thumb and often do not coincide with the labour levels dictated by the branch
manager. Instead, the production scheduler will adjust the run quantities later to fill the
schedule at the detailed level. The products selected for production are considered

32

independently of one another and sequencing considerations are ignored at this stage.
Considering some of the detailed sequencing issues at this early stage could result in
significant cost savings for the company. For example, if a 2L neapolitan product will run
out in week 1 and the 4L neapolitan production will run out in week 2, then it may be
beneficial to produce both products in week 1 and save significant setup costs. These
types of benefits are currently ignored because it is difficult to coordinate the production
of hundreds of products without the added difficulty of sequencing considerations.
Model B uses a rolling planning approach to develop an improved production plan from a
given weekly state consisting of starting inventory levels and upcoming product demand.
The plan dictates which products to produce and their run quantities by week for a
number of upcoming weeks. A 13-week horizon was chosen to coincide with the
maximum lead-time needed to acquire raw materials, but the horizon could easily be
extended or shortened as needed.

The problem is modelled as a mixed integer program that minimizes setup and inventory
holding costs while meeting demand and the labour schedule imposed by Model A. The
model is based on aggregated product families, where a family is a group of SKUs that
share a common setup procedure. Grouping the products into families speeds up model
computation time and forces the model to schedule groups of products that will benefit
from being scheduled together. The resulting production plan includes run quantities
designed to last for an integer number of future periods and accumulates any necessary
seasonal stock inventory as defined by Model A. The operations coordinators will use the
resulting plan as a basis for developing a feasible production demand schedule each
week. A detailed discussion of Model B is in chapter 6.

4.4

Detailed Scheduling Model

The production coordinators supply the production scheduler with the list of products and
their run quantities to be produced in the upcoming week. The production scheduler is
responsible for developing a detailed production plan by assigning each product to a line

33

and sequencing them in a way that reduces mix loss and obeys all allergen constraints.
The process takes two to three hours to complete each week and relies heavily on the
expert knowledge of the production scheduler.
Model C creates a production sequence for the upcoming week consisting of the products
and run quantities selected by Model B. The sequence is constrained by the allergen
restrictions and the production capacities of each line for each day. The objective of the
mixed integer programming model is to minimize changeover costs, which are directly
related to mix and ingredient loss. Setup times and costs are sequence dependent and a
satisfactory schedule will order the products in the least expensive progression. The
model will save the production manager time by creating a feasible production schedule
for the week that can be modified if necessary or implemented directly. A discussion of
Model C is in chapter 7.

34

Chapter 5
The Aggregate Planning Model: Model A

Model A is the first and highest level in the hierarchical planning structure. The objective
at this stage is to plan aggregate production and inventory levels to meet demand in a
dynamic, seasonal environment at the least cost possible. Planning for changing demand
patterns can be difficult, and some ice cream demand can increase by over 600% in the
summer months. When faced with changing demand, inventory can be accumulated
during slack periods to meet demand in peak periods or the size of the work force can be
varied to increase or decrease production rates as necessary. Determining the appropriate
strategy involves comparing the cost of different workforce sizes and the cost of storing
excess inventory. The problem is constrained by factors such as the maximum capacity of
the manufacturing plant and the amount of storage space available.

The model developed to address these long term issues provides a labour and inventory
plan that minimizes holding, transportation, labour, and production costs while meeting
the demand forecast for at least one demand cycle. The planning horizon covers 12
months into the future because ice cream has a pronounced yearly seasonal demand
pattern that must be captured by the model. The model can easily be adapted to utilize
different time periods or horizons if needed. A minimum safety stock level is maintained
at all times and backlogs are not permitted. By selecting an appropriate labour scheme,
production level, and inventory level for each month of the year, the model calculates a
yearly plan that is clear and easy to impose as a constraint on the more detailed stages of
production planning.

5.1 Aggregate Model Literature


To understand the model formulation used for Model A, it is useful to compare it to Hax
and Meal's (1975) aggregate planning model. Hax and Meal calculated seasonal stock
requirements using a very simple linear programming approach that minimized overtime
and inventory costs by type group, while not exceeding resource capacities and meeting

35

demand. They defined a type as a group of products with similar production


characteristics such as line and storage utilization, and production and holding costs.

Indexes:
I
T

- set of product types


- set of periods

Data:
COjt
CIjt
SSjt
Djt
Rt
Ot
ri

- cost of overtime for i in t ($)


- cost of holding inventory for i in t ($)
- minimum safety stock for i in t (ea)
- demand for i in t (ea)
- regular production time available in t (hr)
- overtime production available in t (hr)
- production rate of i (ea/hr)

Variables:
R;t
Ojt
lit

- regular production allocated to i in t (hr)


- overtime production allocated to i in t (hr)
- ending inventory for i in t (ea)

Minimize:
XiZtCOuOit + XiXtChtiit
Subject To:

vt .

(HM. 1)

ZiOit<ot

vt

(HM. 2)

rt(Ru + 0it) - Iit + /,_! = Dit

Vi,t

(HM. 3)

ht>SSit

(HM.A)

The objective function minimizes the cost of overtime production and inventory storage.
Equations (HM.l) and (HM.2) ensure that the total production allocated to each product
does not exceed the regular or overtime production hours available. Equation (HM.3) is
an inventory balance constraint that ensures demand is met from existing inventory or
production in each period. Equation (HM.4) constrains the inventory level of each

36
product to its safety stock level or higher. By selecting the optimal values for Rjt and Ojt,
the model effectively chooses the values for I;t, also known as the seasonal stock
requirements.
Hax and Meal's model is a close representation of the ice cream production process with
some exceptions. Labour availability for the ice cream facility is not fixed and production
capacities can be increased or decreased in each period because the plant is not operating
at maximum capacity. Determining when to produce each product individually is not of
particular value since the actual demand is likely to vary from the forecast at this high
level. Products can be very effectively grouped together by tub size and brand to
determine line speeds, warehouse utilization, and costs.

5.2 Mathematical Model A


Model A is a capacity planning model formulated as a mixed integer programming
problem. Based on aggregated product data, the purpose of the model is to manage the
seasonality of ice cream demand throughout the year by determining when to carry
inventory and when to increase or decrease production levels. Storing ice cream in cold
warehouses is expensive and accounts for a large portion of the cost of doing business.
Although long production days are more cost effective than short ones they result in
increased inventory levels. The significant seasonal patterns of ice cream demand in
conjunction with the varying labour and holding costs create a problem too complex to
address with a simple level or chase strategy.

Time periods were chosen as discrete months consisting of four or five weeks based on
the company's current yearly breakdown. The model is also based on product groups,
where a group is a selection of products that share common production rates and storage
utilizations. Typically, products with the same tub size make up a product group. A more
detailed discussion on product groups is found in section 5.3.1. Demand and inventory
are expressed in tubs, where a tub represents one finished good. Production utilization is
expressed in terms of the capacity requirements to produce a standard 2L vanilla tub

37

(2Ltub). Converting the utilization to a common form of measurement accounts for the
fact that ice cream production is not a linear utilization function per litre. Warehouse
capacities are measured in pallets (pal) of space, and the space required to store one tub is
equal to the inverse of the number of tubs that fit on a pallet. The spiral freezer can
process a fixed amount of ice cream per hour, regardless of tub size or any other factor.
Freezer capacity is expressed in litres per shift (L/sf) and utilization is the litres in each
tub. The indexes, data, and variables used to develop the model are presented here
followed by the model formulation.

Indexes:
K
T
L
W
S
L(k)
K(l)
W(k)
S(t)

- set of product groups


- set of periods
- set of lines
- set of warehouses
- set of labour schemes
- set of lines 1 that can produce product group k
- set of product groups k that can be produced on line 1
- set of warehouses where product group k can be stored
- set of labour schemes that can be considered in period t

Data:
pckn
hckwt
dkt
test
sc+kwt
sc'kwt
luki
lcsit
ftik
fcst
wuk
wc w

- cost to produce product group k on line 1 in period t ($/tub)


- cost to hold product group k in warehouse w at end of period t ($/tub)
- demand for product group k in period t (tub)
- cost of using labour scheme s in period t ($)
- cost to move product group k to warehouse w in period t ($/tub)
- cost to move product group k from warehouse w in period t ($/tub)
- utilization on line 1 to produce product group k (2Ltub/tub)
- throughput capacity of line 1 in period t using labour scheme s (2Ltub/sf)
- utilization of freezer to process product group k (L/tub)
- throughput capacity of freezer in period t using labour scheme s (L/sf)
- utilization of warehouse to store product group k (pal/tub)
- total warehouse capacity (pal)

Variables:
Pkit
Ikwt
Yst
S+kwt

- production of product group k on line 1 in period t (tub)


- inventory of product group k in warehouse w at the end of period t (tub)
- 1 if scheme s is used in period t, 0 otherwise
- amount of product group k shipped to warehouse w in period t (tub)

38

S'kwt

- amount of product group k shipped from warehouse w in period t (tub)

Minimize:

2_, Pckltpklt + ^ ^

YY
t

JGL(fe)

+ }
t

2_,

hc

kwtlkwt

weW(fc)

7
}
isckwt^kwt
k wew(k)

sc

kwt^kwt)

+ )
t

}
^st^st
ses(t)

Subject To:

ikwt = hw(t-) + sm~Skwt

= Y

^t+YaPklt+

wew(k)

lL{k)

lu

kiPMt ^ Y

Y
kEK(l)

keK.we

5fc+wt

(Al)

kEK,tET

(A2)

lEL,tET

(A3)

weW(k)

ksltYst

S65(t)

Y YfUkPku - Z/Cstrst
k

w(k),tsT

teT

(A4)

ses(t)

Ywu^kwt

^wcw

tET,wE

W(k)

(A5)

*t=i

teT

^- 6 )

SES(t)

Put ^ 0,/ fewt > 0,Sfc+wt > 0,Sfe-wt > 0,Yst E {0,1}
The model objective is to minimize production, holding, shipping, and labour costs.
Equation (A.l) is an inventory balance constraint that forces the current inventory level to
equal to the previous inventory level plus shipments into the warehouse and minus
shipments out of the warehouse. Only one of the shipping variables will be greater than

zero for each instance of this constraint. Equation (A.2) ensures that demand is met from
current production or existing inventory by shipping products out of warehouses as
needed. Backlogs are not an option for this manufacturer.

39

Equations (A.3), (A.4), and (A.5) are capacity constraints for the lines, freezer, and
warehouses. In Hax and Meal's model, the only capacity constraint is the number of
available hours of overtime and regular labour. In this case, production is limited by the
line availability and the spiral freezer. Although each line operates essentially
independently of one another, all three lines feed their finished product into the spiral
freezer. Equation (A.3) constrains the production on each of the three lines and equation
(A.4) constrains the total production being fed into the freezer. Hax and Meal's model
also assumes that inventory storage is limitless. For the case considered here, onsite
storage space is limited and the company has three additional warehouses for outside
storage. Their capacities and the cost of transferring product to and from each warehouse
are constrained by equation (A.5).

Equation (A.6) assigns exactly one labour scheme to each period. For each period, the
model must choose only one scheme and the costs and capacities associated with it by
turning on or off a binary variable. Each scheme specifies the number of hours available
on each line (production capacity) over the course of one week and is based on current
best practices. The weekly labour capacities are converted to monthly capacities by
multiplying them by the number of weeks in each period. This forces the solution to use
the same labour scheme for four or five weeks in a row, which leads to a practical labour
schedule from a personnel perspective. The company normally plans a shutdown for one
week in February to perform a variety of maintenance procedures and this can be easily
accounted for by only allowing three weeks' worth of production in that month for each
scheme. A detailed discussion of the development and design of these labour schemes is
found in section 5.3.3.

5.3

Data

There are obviously no standards for transforming general solutions to real world
problems. Each industry situation is unique and must be evaluated individually. From a
modelling perspective, the units used for the data must be consistent with the constraint
formulations. From the end-user perspective, the inputs should be intuitive and easy to

40

interpret so they can be updated easily. The availability of certain types of data also limits
the options for populating the model. The following sections discuss each of the Model A
data types and how they were developed for this project.

5.3.1 Aggregating Data


When planning for labour and capacity requirements on a long horizon, it is not
necessary or beneficial to consider each product as an individual SKU. Combining
products into groups based on similar characteristics reduces data requirements and
improves model solution time. Although it is generally agreed that high level models
should be aggregated (Bitran, Haas, & Hax, 1981; Erschler, Fontan, & Merce, 1986;
Silver, Pyke, & Peterson, 1998) the method of aggregation depends largely on the
situation. Silver et al. suggest that converting units to a basic measurement, such as litres
of ice cream or dollars of sales, can help simplify a model's formulation. Hax and Meal
(1975) aggregated families with the same production rate, holding cost, and seasonal
demand pattern into groups.

Reducing hundreds of SKUs down to the elementary level of "litres of ice cream
produced" is not practical in this case because different groups of ice cream have varying
associated costs per litre. The size and shape of an ice cream tub determines how many
tubs can be packed onto a pallet and the resulting "litres of ice cream per pallet" can vary
widely from tub to tub. Since inventory storage in the ice cream warehouse is typically
measured on a per pallet basis, this difference will affect ice cream storage costs.
Different products also follow different seasonal demand patterns, affecting production
and storage demands throughout the year. Size and shape also affect the number of tubs
that can be produced per hour, and the result is not a common number of litres per hour.
Premium ice cream costs more to make than economy ice cream, and storing premium
ice cream ties up more funds in inventory. Lastly, not all products can be produced on all
lines. The model must be constrained by the capacity of each line, particularly for line 1
which is usually in high demand.

41

The best way to aggregate the data was not initially clear. If the products were aggregated
too coarsely, then important production and storage costs could not be properly modelled.
If they were aggregated too finely, then the model solution time would not benefit from
grouping the data. Through discussions with the company's production planner, it was
determined that from a cost perspective, the products should first be broken down by size.
An 11.4L tub takes longer to produce than a 2L tub and it has a higher holding cost
because it has a higher value and takes up more space in a warehouse or truck. Table 1
contains a typical example of how product groups might be arranged, where every group
contains only one tub size.
Table 1 - Sample of Aggregated Product Groups

Group

Brand

Flavour

Type

Tub Size (L)

Tubs/Pallet

330

330

p05

Brand A

Vanilla

p05

Brand A

Butterscotch Ripple

i/c
i/c

p05

Brand A

Neapolitan

I/C

330

p05

Brand A

Chocolate

I/C

330

p05

Brand B

Butterscotch

I/C

330

p05

Brand B

Vanilla

I/C

330

p05

Brand B

Chocolate

I/C

330

p05

Brand B

Neapolitan

I/C

330

p06

Brand C

Strawberry

I/C

390

p06

Brand C

Chocolate

I/C

390

p06

Brand C

Neapolitan

I/C

390

p06

Brand C

Vanilla

I/C

390

plO

Brand D

Chocolate Mint Chip

I/C

540

plO

Brand D

Divine Chocolate

I/C

540

plO

Brand D

Chocolate

I/C

540

pXO

Brand D

Vanilla

I/C

540

p.10
pll

Brand D

Neapolitan

I/C

540

Brand D
Brand D

SHERBLT
YOGOURT

pll

Brand D

Fudge Brownie

YOGOURT

pll

Brand D

Chocolate

YOGOURT

pll

Brand D

Vanilla

YOGOURT

pll

Brand D

Orange

SHERBET

2
2
2
2
?
2

540

pll

Rainbow
Strawberry

pll

Brand D

Vanilla

LIGHT

540

540
540
540
540
540

42

A breakdown by size is not detailed enough because although some products contain the
same amount of ice cream, the number that can fit on a pallet varies based on the type of
container lid or the way the customer wants them arranged. The number of tubs to a
pallet translates directly to different holding and transportation costs, which are palletbased. Therefore, product groups were further broken down by "tubs per pallet". For
example, in Table 1 group p05 is made up of 4L tubs of varying brands and flavours that
fit 330 tubs to a pallet. Group p06 also consists of 4L tubs of ice cream but these products
fit 390 tubs to a pallet. Because of the discrepancy in holding costs, the two sets of
products were split into different groups.
The value of a product determines the portion of its holding cost that represents money
tied up in inventory that could otherwise be invested in other ventures. Premium
products, sherbets and sorbets, and frozen yogourts contain expensive ingredients and
cost more to store. To account for this difference in holding costs, products were further
separated by base mix type. Based on the cost of producing one litre of yogourt, sherbet,
and light base mix the decision was made to group all non-ice cream base mixes together.
For example, in Table 1, groups plO and p l l have the same tub size, tubs per pallet, and
even the same final customer, but they are separated into two groups because of their
differing base mix types.

Separating the products by production line is also important because not all products can
be produced on all lines. Model A distinguishes between the production capacities of
each line so groups must be broken down by line. Interestingly, once the products were
aggregated to meet all other criteria, they were already separated by line. No further
breakdowns were necessary and twenty-six product groups were created in total.

5.3.2 Demand and Inventory


An updated demand forecast is provided by the sales and marketing departments on a
quarterly basis. Demand for each individual SKU is expressed per month in "tubs" of

43

finished product. Because converting from tubs to litres provides no advantages and
increases the number of calculations required, the model data is also expressed in tubs.
Based on constraints (A.l) and (A.2), it follows that the inventory, production, and
shipping variables must be expressed in tubs.

One important change to Hax and Meal's original model that has been mentioned in
several studies (Axsater, 1986; Bitran, Haas, & Hax, 1981; Erschler, Fontan, & Merce,
1986) is to use "effective demand" rather than "actual demand". The problem is that to
calculate the forecasted demand (Djt) and starting inventory (I;o) for each group, the
demand and inventories for each product in the group are summed. However, this
incorrectly allows the model to use the inventory for one product to meet the demand of
another if they are in the same group. As a result, Model A might not schedule that
product group for production in the first period when in actuality several of the products
in that group will drop below their safety stocks. The solution is to calculate the effective
demand for each product before summing across groups. Effective demand is equal to the
demand minus inventory or zero, whichever is greater, and is calculated for all future
periods (Equation 1) (Axsater, 1986).
Equation 1 - Effective Demand

det
dt
io

- Effective demand for a product in period t


- Forecasted demand for a product in period t
- Initial inventory for a product

det=maxW,y

dt i0\

Effective demand ensures that the demand for each product is accurately represented in
the seasonal model and that the available inventory of one product is not used to meet the
demand of another. Solving the model using effective demand is imperative to achieving
a solution that is likely to be feasible at the detailed level.

44

Rather than use forecasted demand, Model A has been designed to utilize effective
demand. An additional change was made to the effective demand equation so that it also
accounts for some minimum level of safety stock (Equation 2). The effective demand
now includes the production that is necessary to maintain some minimum level of safety
stock in each period. By constraining the model to meet this modified effective demand
level, no additional safety stock constraints are needed in the model code, simplifying the
model formulation and solution. Determining an appropriate value for the safety stock
level depends on the company's desired service level and is a separate issue to be
addressed by the company decision makers. The safety stock level is currently set to
cover one week of average demand over the year.
Equation 2 - Modified Effective Demand

det
dt
io
sst

- Effective demand for a product in period t


- Forecasted demand for a product in period t
- Initial inventory for a product
- Safety stock level for a product in period t
det max 10, j

dt i0 + sst \

To illustrate the importance of effective demand, Table 2 contains a sample of four


products and their demands. The total amount of starting inventory is 37,000 tubs for the
group, with 9,000 tubs allocated as safety stock and 23,000 needed to cover the first
period of demand. According to this data there will be no need to produce this group of
products in the first period because 37,000-9,000-23,000 = 5,000, indicating that there is
enough initial inventory to cover the first period of demand and have 5,000 tubs left over.
However, if the products are considered independently then SKUs 817 and 813 do not
have enough initial inventory to cover both the safety stock and demand in the first

period. The actual effective demand for the group in the first period is therefore equal to
8000 and the group will need to be scheduled for production.

45

Table 2 - Sample of Forecasted and Effective Demand


Forecasted Demand
SKU
#

Inventory
(tubs)

Safety
(tubs)

t01
(tubs)

t02
(tubs)

t03
(tubs)

Effective Demand
t04
(tubs)

t01
(tubs)

t02
(tubs)

t03
(tubs)

t04
(tubs)

818

14000

3000

5000

6000

9000

2000

9000

2000

814

20000

4000

9000

13000

14000

10000

6000

14000

10000

817

2000

1000

4000

4000

6000

3000

3000

4000

6000

3000

813

1000

1000

5000

5000

8000

4000

5000

5000

8000

4000

Total

37000

9000

23000

8000

5.3.3 Labour Schemes


Rather than allow the model the freedom to assign any amount of regular or overtime
production, it is constrained to a selection of predefined schemes to ensure that the
resulting labour schedule consists of reasonable shift lengths. To avoid over-constraining
the model, the selection of schemes must include a wide range of possible production
scenarios the facility is likely to encounter. Discussions with the production manager
produced 12 scenarios, summarized in Table 3. The decision to stop at 12 was based on
what was considered reasonable in this case. There is no reason that the model could not
be designed with 20 or 30 labour schemes, although for every additional scheme the size
and complexity of the model also increases.

Each scenario includes the total number of production hours per week for each of the
three lines. At one end of the spectrum, scheme bOl has no scheduled production at all
and represents a shutdown period. Scheme b04 schedules the maximum number of
production hours and consists of five 16-hour days on each line and one extra 8-hour day
for line 1 on Saturday. Schemes b06-bll offer the flexibility of producing more on one
line than others for situations where a particular line may be in higher demand.

46
Table 3 - Model A Labour Schemes

Scheme

Line 1
Line 2
Line 3
(hrs per week) (hrs per week) (hrs per week)

bOl

0
40
80
88
40
48
40
40
48
48
40
50

t>02

b03
b04
b05
b06
b07
b08
b09
blO
bll
bl2

0
40
80
80
80
40
48
40
48
40
48
50

0
40
80
80
80
40
40
48
40
48
48
50

The cost of each labour scheme is needed for the model's objective function. The costs
included are only those affected by the scheduling of a shift. Overhead costs, research
and development costs, and other fixed costs are ignored because they are not affected by
changes in the schedule. A sample of the costing calculations for labour scheme b02 is
presented in Table 4 with adjusted costs to protect the privacy of the company. The
schedule consists of three 10-hour shifts per day from Monday to Thursday for a total of
40 hours per week. The labour schedule costs and capacities are managed in an Excel
spreadsheet. Based on the shift length and number of lines running each day, the
spreadsheet calculates the total number of hours needed for each work position and
multiplies it by the hourly wage for that job. The spreadsheet also determines the
expected output in terms of 2L tubs for each shift length based on observed actual output.

For every hour that the lines are running, production staffing requires one freezer
operator per line, three packers per line, and one bypass worker for all lines. These
numbers are not exact as some of the more premium products require more operators
while economy production requires less, but they are reasonable estimates. The number
of palletizers working in the warehouse is a function of the number of lines running and
the length of the shift. One lab supervisor must be on staff for eight hours during a
production day, regardless of shift length. One lab technician is also required for an

47

additional eight hours to perform extra work, although they do not have to be present at
the same time so their work can be divided up over a 16-hour shift. Wash-up staff is
needed for eight hours the night before production and eight hours the day of production.
In general, four mix workers are needed to prepare mix the evening before production is
scheduled. Additional mix can also be produced during the day. Supervisor, manager, and
maintenance hours are all fixed based on whether production is scheduled. Hours are
separated into AM and PM because the hourly pay rate increases if a shift begins after
12pm. The hours for each week are summed and multiplied by the current hourly wage
for each position to calculate a total cost for the schedule.

Table 4 - Labour Scheme Sample Cost Calculations


Labour Scheme b02
Sun

Mon

Tue

Wed

Line 1

10

. to

10 -

Line 2

10

"ift'.

10

Line 3

10.

10 ,

10":

Thu
Iff
, 10!"

Fri

:o.-

Sat

Total hrs

40

-6 :'o:;'.
""'io ' '6'" Q . ,

Total Cost

40
40

Freezer Operator AM hrs

30

30

30

30

120

Freezer Operator PM hrs

$0.00

Freezer Packer A M hrs

90

90

90

90

360

$5,968.80

Freezer Packer PM hrs

$0.00

Freezer Bypass AM hrs

10

10

10

10

40

$663.20

Freezer Bypass PM hrs

$0.00

Palletizer AM hrs

50

50

50

50

200

$3,708.00

Palletizer PM hrs

$0.00

Lab Supervisor AM hrs

40

$750.80

Lab Supervisor PM hrs

$0.00

$2,252.40

Lab Technician AM hrs

40

$750.80

Lab Technician PM hrs

$38.54

Wash-up Staff

16

16

16

72

$1,387.44

Mixers AM hrs

32

32

32

16

112

$2,102.24

Mixers PM hrs

32

32

$616.64

Production Supervisor

10

10

10

10

40

$822.00

Maintenance Manager

8
40

40

40

40

0
24

40
240

$822.00

24

8
32

Maintenance

$4,684.80
$18,238.86

5.3.4 Freezer and Line Capacities


The labour schemes are defined in hours of available production per line per week. To
constrain the number of tubs of ice cream produced on each line to within capacity, the

48

production rate in tubs per hour is needed. The company has information on the speed of
each line expressed in litres per hour as provided by the manufacturer. However, when
converted to tubs per hour and compared with observed actual output, the actual is often
less than expected. The main reason for this discrepancy is that the speed per hour
assumes continuous ice cream production for the full shift. In reality, there are several
product changeovers per line, per day and unplanned downtime that significantly affect
the total output. Models B and C are designed to directly address the issue of changeovers
affecting total production, but as a high level model, Model A does not consider these
details. However, the issue of changeovers must be included at this level or the model
will overestimate available production capacity.
Rather than attempt to incorporate actual, sequence dependent setup times, an estimate
based on typical observed production outputs is more appropriate at the aggregate level.
As Models B and C are implemented, the observed output will improve and these
estimates can be updated accordingly. An average production speed for each group of
products that includes typical setup times (Equation 3) can be substituted for the
manufacturer's production speed and will incorporate typical setups directly into the
input data.
Equation 3 - Average Production Speed

Units Produced
= Average Production
Units Produced , _ ^
.
75-j. 5 + Setup rT1Time
Production Rate
^

Speed

The average setup time for each product is not known, and data is not available on
individual product productions times. An accurate and accessible way to calculate
average production speed is to estimate it from past data by identifying shifts where only
one product group was produced on a line, summing the total production output, and
dividing by the number of hours in that shift. Shift production data is readily available
and it is not uncommon for products of one group to be scheduled together. The shift
production data corresponded with the rule of thumb rates currently used by the

49

production scheduler. This method also incorporates currently unknown metrics such as
unplanned downtime. The resulting production rates differed with respect to the tub size,
line, and length of shift.
Rather than express the available production capacity in hours, because one hour can
yield different production outputs depending on the circumstances, the capacity was
converted to a familiar base unit. A 2L tub of vanilla ice cream is the company's highest
selling, most consistently demanded product. For each of the 12 labour schemes, the line
capacities are expressed in terms of the number of 2L tubs of ice cream that are typically
produced in that time. Then, each product group's output for each shift length is
converted to a function of 2L tubs that can be produced during that time.

As an example, during an eight hour shift, 2000 tubs of 11.4L tubs of ice cream can be
produced versus 17000 tubs of 2L ice cream. This means that for every tub of 11.4L ice
cream produced on a line, 17000/2000 = 8.5 tubs of 2L ice cream could be produced. If
the production speed was independent of the tub size then production ratio would only be
11.4/2 = 5.7 instead of 8.5. The ratios were calculated for a 10-hour and 16-hour shift and
were also both equal to 8.5. The calculations showed that for each product group, the
ratio is independent of the shift length. Therefore, shift lengths were converted from
hours to "capacity in 2L tubs" and the line utilization for each group was expressed as a
function of the 2L production rate. See Table 5 for the complete list, where a zero value
indicates that a group cannot be produced on that line.
Table 5 - Line Utilization Expressed in Units of 2L Tubs
Line 1
(2L tubs)
8.50

Line 2
(2L tubs)
0

Line 3
(2L tubs)
0

8.50

p03

8.50

p04

8.50

p05

2.13

2.02

p06
p07

2.13

2.02

2.02

Group
p01
p02

50

p08
p09
p10
P11
p12
p13
p14
p15
p16
P17
p18
p19
p20
p21
p22
p23
p24
p25
p26

0
0
0
0
0
0
0
0
0
0
0
0
0
1.28
1.28
1.28
1.28
1.28
1.02

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.13

1.19

0
0

1.20

1.20
1.19

0
0
0
0
0
0

1.20

0
0
0
0
0
0
0
0

With the implementation of the production management system, improved product


groupings and sequencing will result in higher production outputs per shift. As the
average output per shift changes, the production rates in Model A will be updated to
account for the change. Providing feedback to the system based on the actual production
rates ensures the system can adapt to a changing environment.

The spiral freezer capacity is much simpler to calculate because the system processes
10,000L of ice cream per hour, regardless of product size, type, or the length of a shift.
The only exceptions are the 11.4L tubs that bypass the freezer and enter the warehouse
directly. Freezer capacity is represented as the total number of litres that can be processed
during a shift and the freezer utilization for each group is equal to size of the tub in litres.
Therefore during an 8-hour shift with capacity 80,000L, a maximum of 40,000 tubs of 2L
ice cream could be produced.

51

5.3.5 Warehouse Utilization and Costs


When excess inventory exists at the end of a period, warehouse space is required and
storage and holding costs are incurred. If no warehouse space is available then no
additional inventory can be accumulated. Warehouse capacity is typically expressed as
the number of pallet spaces available per facility. The number of tubs of each product
group that can fit on a pallet is known, so the utilization is expressed as the inverse of
tubs per pallet. If a warehouse can hold 1000 pallets and a pallet holds 550 tubs of 2L ice
cream, then at most 550,000 tubs of 2L product could be stored in that warehouse at any
one time.

There are four warehouses available for storing inventory. Warehouse 1 is owned by the
company and is located in the same building as the ice cream production facility. After
ice cream is produced, it must be stored for at least two days in the onsite warehouse
while quality tests are performed before it can be distributed or sent to another warehouse
for storage. The company owns and operates two additional warehouses, WH2 and WH3,
which are available for extra storage on a per pallet basis. A section of space is also
rented from an outside warehouse, WH4, for a monthly fee. The warehouses and typical
examples of their shipping and storage costs are summarized in Table 6.

Table 6 - Warehousing Costs by Facility


Warehouse
WH3
WH2
WH4
WH1

Capacity Shipto Shipfrom Storage


$/pal/mon
pal
$/pal
$/pal
40
85
15
5000
25
1500
90
15
15
25
2000
45
85
1000
10
10

The "ship to" cost is expressed per pallet and is equal to the total cost of sending one full

truck from WH1 to the end warehouse, divided by the number of pallets each truck can
hold, plus the fixed cost of storing and retrieving a pallet within the warehouse. All
products are stored in WH1 at least temporarily, and the store/retrieve cost for shipping to
the other three warehouses is actually the store/retrieve cost for each warehouse plus the

52

cost for WH1. Finally, the "per pallet" costs are divided by the number of tubs per pallet
for each product group to determine the ship from cost per tub that the model requires.
The "ship from" cost is expressed per pallet and is equal to the total cost of sending one
full truck from the warehouse back to WH1, divided by the number of pallets each truck
can hold. The model assumes that all products are shipped to the final customer from
WH1. All costs associated with handling the pallets were accounted for in the "ship to"
cost and do not need to be included a second time. Costs are then converted to "per tub"
for the model.

The holding cost is equal to the cost of storing one pallet in the warehouse for one month,
plus the cost of having money tied up in inventory. Storage costs are based on company
estimates and vary by facility. Typically, the cost of having money tied up in inventory is
between 10%-15% of the product value per year. The percentage is divided by 12 and
multiplied by the average product value for each group to determine a cost per tub per
month. The inventory cost is added to the converted storage cost to determine the holding
cost per tub per month.

5.4 Implementation
The model is implemented through a software program developed by Maximal Software
called MPL (Mathematical Programming Language). MPL allows the user to represent
what might otherwise be a very labour-intensive coding problem with a few lines of
algebraic equations. It also imports data from spreadsheets or databases, greatly
simplifying the process of updating input data. MPL then uses the algebraic equations
and input data to build the LP code necessary to solve the model in a variety of
optimisation software languages. MPL can also export any or all of the results to
spreadsheets or databases. MPL can be called from a common program such as Microsoft
Excel or Access, run invisibly in the background, and output the solution back to the
program, thus eliminating the need for an end-user to learn MPL. The MPL code can be
found in Appendix A.

53

MPL pulls the majority of the Model A data directly from the central database built for
this project. The database is updated by the research and development department and the
production manager at least once a week. No further updates to the database are
necessary before running the model. The labour scheme information is currently stored in
Excel spreadsheets because it is easy to calculate the costs and capacities in a spreadsheet
environment. The Excel data is also imported directly by MPL but updating it requires an
extra step outside of the database. The labour schemes and wage data will not need to be
updated as often as the other demand data such as starting inventories and forecasts so
this extra step is minor. The yearly forecast is also translated to effective demand through
the use of Excel functions. In the future, it might be beneficial to program the
calculations directly into the database and remove the Excel portion entirely.

Once the data has been updated, the MPL model is solved using CPLEX 9.0, a popular
and powerful solver software package. When CPLEX 9.0 finds a solution that is within
0.01% of optimality, it stops and outputs the results to an Excel spreadsheet. The
tolerance level of 0.01% was chosen because it provides a reasonably quick solution and
there is no need to constrain the solution further because of the inherent forecasting errors
and accuracy of data estimates. The spreadsheet compiles the data output and translates
them into easily interpreted results. Graphs show the hours of labour scheduled for each
month within the year as well as the actual production in hours. Total warehouse storage
is also graphed over the year. Sample graphs are provided in the next section.

The model is designed to be implemented on a rolling schedule. Currently, the marketing


and sales departments work together to develop a yearly forecast for each SKU by month.
Unfortunately, as with most industries, this demand forecast is fraught with uncertainties

due to typical demand variations and more acute changes from extreme weather
conditions or the acquisition of new customers. To compensate for these changes, the
sales and marketing departments issue a revised yearly forecast every quarter. Updating
Model A with the new forecast and current inventories and solving it every three months

54

provides the flexibility to respond to discrepancies between the forecasted demand and
actual sales over each quarter.

5.5

Results

The model consists of roughly 4000 variables and 2000 constraints. It is solved to within
0.01% of optimality in 15,000 iterations or about one minute to import the data, reach an
optimal solution, and output the results on a personal computer with a 2.80GHz
processor. The solution time is mentioned only as rough guide and to demonstrate that
the model solves in a practical time frame. The intention was to develop a model that is
easy to implement, not to improve on the computational speeds of other aggregate
models. The quick solution time means that management can easily make changes to the
input data and rerun the model to see the results of their changes. Although the model is
intended as a planning tool and not a marketing tool, it still provides valuable marketing
information such as the impact that the addition of a new product will have on the overall
capacity planning for the plant.

The solution includes which labour schemes should be implemented each month as well
as the actual production used in each period. Although the cost of labour will drive the
model to fully utilize production capacity, the high cost of storing inventory means that
sometimes the model will have unused capacity. For example, as period tOl in Table 7
shows, there is a lot of unused capacity in the first period on line 2. Forty hours of
production are scheduled but only 2.64 hours are actually allocated for production. The
difference is caused by an imbalance in starting inventories. Many of the specialty
products that are only produced on line 1 have low inventory stocks, which translate to
high effective demands and a 94% utilization rate for line 1. Lines 2 and 3 have lower
product demands and the cost of acquiring excess inventory for those products was
higher than the cost of underutilizing capacity. Also, because line 3 is marginally faster
than line 2, the model allocated all products that can be produced on both lines to line 3.
After the first period, the model smoothed out the inventories and was able to maximize

55

the available labour hours. If desired, a second labour constraint can be added to force the
model to use some minimum percentage of the total labour scheduled.
Table 7 - Model A Labour Scheme Results

Upper Bound

Actual
Period

101

102

103

101

102

103

toi

37.70149

2.64778

33.30682

40

40

40

t02

50

43.09285

43.15932

50

50

50

t03

45.21606

50

50

50

50

50

t04

50

50

50

50

50

50

t05

50

50

50

50

50

50

t06

50

50

50

50

50

50

t07

50

50

50

50

50

50

t08

50

50

47.89613

50

50

50

t09

77.11877

44.66859

68.92098

80

80

80

tio

80

64.61295

70.38303

80

80

80

til

50

50

50

50

50

50

tl2

40

40

39.89947

40

40

40

The model also outputs the ending inventory for each product group in each period. The
inventory is used to offset the seasonality of the demand by building anticipatory stock in
off peak months. As Figure 4 shows, the initial inventory levels drop sharply in the first
period as the model establishes a balance among the product levels. In this example, the
ending inventory is also much lower than the starting inventory, which may lead to an
infeasible plan in the future. One way to verify the sustainability of the solution is to
advance the data forward one year and solve the model again, with the lower starting
inventories, and verify that there is enough capacity to meet demand. Another option is to
allow the model to choose its own initial inventory levels and constrain the ending
inventories to match. The levels selected by the model will be sustainable and
representative of a practical ending inventory value.

56

Inventory Levels by Month


2500 2000

\
\

1500 -

< 1000 500 0 -

12

Month

Figure 4 - Model A Inventory Results

A comparison between the results from Model A and the facility's current practices is
useful in assessing the model's general applicability to the company. To determine the
best approach to seasonal scheduling, the company has implemented several production
plans in recent years. One plan was to increase production from 40 hours per week to 80
hours per week as early as February for a total of roughly 9400 production hours over the
year. As a result, the company found themselves with large amounts of excess stock at
the end of the peak season that had to be stored for several months. The following year,
they held back the increase until May. The new plan totalled only 8420 production hours
and improved inventory levels but was not necessarily the least expensive alternative.

The schedule suggested by the model includes 50 hours of production per week for most
of the year, maintaining high inventory levels until June, at which point the inventory is
depleted and production is increased to meet the demand for the summer months.
Production is then scaled back to 50 hour weeks for the remaining months. A comparison
between the three production plans is illustrated in Figure 5. Interestingly, the total
number of production hours scheduled by the model is the same as the second plan
implemented by the company. The difference is in the distribution of the total production
hours. The results suggest that the production savings associated with efficient 10-hour

57

production days is significant enough to offset the extra holding costs that result from
carrying the excess inventory.

Yearly Production Plans


300
tA
S

0
X

Z
O
*J

250

if^:2

700

3
TJ

o ISO
a.
>
m 100

*' "t

, - /

...

!t>

3
(5
O

SO

October

January

Aprii

July

Figure 5 - Yearly Labour Production Plans

Model A was also used to evaluate the feasibility of acquiring a new customer. The
addition of the new customer would result in a 33% increase in total capacity
requirements and the company was not sure if the current facility configuration could
handle the increase. Temporary products were created to represent the new products and
they were assigned estimated demand patterns. The model concluded that there is no
feasible solution given the current capacities of the plant so an additional labour scheme
that incorporated 18-hour production shifts was created and the model was solved again.
With the new configuration, the system was able to meet the new demand. The company
could also use the model to explore the possibility of adding a fourth line or increasing
warehouse capacities.

58

Chapter 6
The Weekly Scheduling Model: Model B

The purpose of Model B is to provide a well-informed detailed scheduling plan on a short


term basis that maintains the production and inventory plan imposed by Model A.
Specifically, the model determines which SKUs to schedule for production each week
and how many tubs of each product to produce. Determining appropriate run quantities
while meeting demand and reducing product loss in an environment with hundreds of
unique products and comparatively expensive changeovers is a challenge. Significant
cost and time savings can be achieved by modelling the system and minimizing these
parameters automatically. Operations coordinators will use this information as a guide
when developing the weekly production demand.

The problem is modelled as a node network, discussed in detail in section 6.3, where each
period is a node and arcs represent the cost and production associated with meeting
demand from node to node. The objective is to minimize the cost of setting up each
product and the cost of holding inventory from week to week. The constraints are the
upper and lower production capacities as determined from the aggregate model. The
optimal solution is the least expensive path for a number of future periods that also
maintains the appropriate production levels in each period.

Rather than model individual SKUs, products are grouped into families. Families are
products with similar setups that can benefit from being run sequentially, such as
products made from the same base mix and products with similar packaging. By grouping
these products together, the task of selecting appropriate product sequencing at the daily
level is simplified significantly. Previous research on hierarchical plans has typically
defined families as subsets of the types used by the aggregate model. However, the
assumption that products that share similar production rates and demand patterns will
also share similar setup costs is not always true. In this case, family are allowed to cross
over product groups. Model inputs are simplified and solution times are reduced. The

59

result is a weekly schedule of families of products and run quantities that ensure demand
is met for an upcoming number of weeks.

6.1

Disaggregated Model Literature

Optimizing product run lengths is a well developed concept. One of the earliest
advancements in production scheduling is Harris' 1913 publication on the Economic
Order Quantity (EOQ) that has been reprinted in the Operations Research journal (Harris,
1990). Harris developed a formula that traded off setup costs (A) and holding costs (vr)
for a particular item based on its expected demand rate (D) to determine an appropriate
production lot size. Over time, EOQ y[(2AD/vr) has become a staple in production
planning and can be found in almost any inventory management textbook. Unfortunately,
all components of the EOQ are assumed not to vary with time, and thus the equation is
only effective in cases where demand is constant. The EOQ does not perform well in
situations with seasonal demand trends such as ice cream. Furthermore, the equation is
very simple and does not consider the complex dependencies and linkages of a
production system as a whole. There are a variety of other decision rules for determining
optimal order policies, some of which incorporate group setup costs such as Goyal's
optimum packaging frequency (Goyal, 1974) but they all suffer from the drawback of
assumed infinite capacity. Optimal replenishment frequencies in a company with limited
fixed capacity are only useful in the unlikely even that all product groups come up for
replenishment in such a way that production remains constant from one day the next.
Hax and Meal (1975) took a different approach to lot sizing and started with a fixed,
aggregate capacity to be disaggregated. They began with their product "types" schedule
and broke it down into product "family" schedules, where a family is a group of products
that share a common setup cost. First, the families that will run out in the first month are
selected for production. Second, minimum run lengths for each item in the families are
summed. If the total production is less than what is available for the type then additional
production is added so that each family finishes with the same fraction of their overstock
limits in storage.

60

Hax and Meal's model does not consider setup costs and holding costs when determining
production run lengths. Depending on the difference in holding costs, it may be best to
produce a family with high setup costs less frequently than a family with low setup costs,
regardless of the resulting fraction of inventory storage. The model is also not designed to
create a schedule that is guaranteed feasible in future periods. By ignoring the forecast in
upcoming periods the model may develop a schedule that lacks the capacity necessary to
meet demand in some future period.
Bitran, Haas, and Hax (1981) compared two alternate methods for allocating family
demand: Bitran and Hax's Regular Knapsack Method (RKM) and Equalization of Run
Out Time (EROT). RKM allocates the production for each type among its families using
a knapsack approach (minimize setup costs for each family over the course of the run out
time for the type) for the first period only. They also added the Look Ahead Feasibility
Rule (LAFR), a constraint that forces the model to look ahead one period and add
families as needed to the current production so that demand can be met for both periods.
Erschler, Fontan, & Merce (1986) later took the LAFR one step further and extended it to
cover all periods in the horizon. EROT simply allocates the production of all families
within a type so that they will all run out at the same time while meeting that period's
production requirements.

A comparison by the authors determined that when setup costs are 5% or less of the total
production costs, EROT was favourable, otherwise RKM provided the best results. This
is because EROT ignores setup costs and instead attempts to minimize total primary costs
by uniformly depleting any initial inventories. RKM, on the other hand, minimizes setup
costs and may not allocate the inventory uniformly, resulting in lower setup costs and

higher total primary costs. Both methods have advantages over Hax and Meal's (1975)
model in that they are designed to uniformly deplete resources during the run out time of
the type so that eventually, when one family within a type is triggered, all the other
families are also triggered. However, the optimal run out time for the type is never
calculated and is instead driven by the available production for that period. There is no

61

guarantee that the run out time will be equal to an integer number of future periods and
there will likely be excess inventory at the end of the last period.

Eppen and Martin (1987) solved a multi-item capacitated lot size problem using variable
redefinition. They started with general dynamic lot sizing problems and reformulated
them to equivalent shortest-path models with flow balance equations. These mixed
integer programming models have linear programming relaxation values that are equal to
the Lagrangian dual, resulting in tighter bounds and much faster solution times. The
formulation does not include considerations for products that would benefit from being
produced together but does provide an alternative framework for addressing the
capacitated production problem.

Allen and Schuster (1994) developed a simple disaggregation model similar to Hax and
Meal's (1975) hierarchical plan. Although their model only plans for family production
and not type production, their method of disaggregation is still useful. Their mixed
integer programming model minimizes holding and setup costs while meeting the total
family requirements as determined by the high level model for t future periods. Because
their model considers only one family at a time, it can solve quickly and easily in a
simple spreadsheet.

Allen and Schuster's Disaggregation Planning Model


Indexes:
I
T

- set of products i
- set of periods t

Data:
CH;

- holding costs for product i

CSj
Bjt
S;
Djt
Ft
Qi
M

- setup costs for product i


- buffer stock requirements for product i in period t
- setup time for product i
- demand for product i in period t
- total family requirements in period t
- fictitious demand at least as large as total demand over the time horizon
- large number compared to other objective coefficients

62

Variables:
Pit
0; t
lit
Nit
Et
St

- regular production time for product i during period t


- overtime production time for product i during period t
- inventory level for product i at the end of period t
- 1 if product i is produced in period t, 0 otherwise
- excess production in period t
- production shortfalls in period t

Minimize:

(CH / i t + CStNit) + M(Et + St)


i

Subject To:

Vi,t

045.1)

ht > Bit

Vi,t

04S. 2)

Pit - QtNit < 0

Vi, t = 1 to 4

(i45. 3)

Vt

(ASA)

The model objective is to minimize holding costs, setup costs, and production deviations
from the higher model's family requirement levels. Equation (AS.l) is an inventory
balance constraint. Equation (AS.2) ensures all ending inventory levels are higher than or
equal to the buffer stock requirement. Equation (AS.3) is a fixed charge constraint that
turns on the setup variable when production is positive. Equation (AS.4) sets the total
production for each family equal to its requirements. The setup for each family was
included in the aggregated model and Allen and Schuster did not include individual setup
times at this level. Et and St are relaxations to the constraint to allow the model to exceed
or underutilize the capacity at some very high cost. The elastic constraint results in a
faster solution time and the final values for the penalty variables are usually zero.

Allen and Schuster noted that removing setup times, holding costs, and equation (AS.3)
from the model has little effect on the solution but greatly improves the computation

63

time. They found that in the case of large families with eight or more products, removing
these cost considerations was essential to solving the model in a reasonable time frame.
However without the holding and setup costs, the model is not optimizing anything of
significant value. Once the inventory and buffer constraints are satisfied, there is no
metric to optimally decide which P,t values should be increased to meet family
requirements. The original model may be too complex to solve for a company with 330
product SKUs and the modified model would not provide the level of optimisation
desired.

Silver, Pyke, and Peterson (1998) developed a different method for dealing with cases
where setup costs are high. After allocating production to the families within a product
type so that all aggregate production is consumed, the marginal benefit of having
increased production available is calculated. If the benefit is positive and unallocated
production hours exist, then additional hours are added. This continues until no more
benefit can be seen or no more production hours remain.

Another proposed solution to the weekly scheduling problem was based on the earlier
work of Malone and Oostvogels (2003) that was completed for the same ice cream
company. The approach incorporated a Silver-Meal (Silver & Meal, 1973) heuristic to
solve for run quantities. In this model, products were not broken into families and were
generally treated individually. The model identified all SKUs that would drop below their
safety stock levels if not produced during the upcoming week and scheduled them for
production. A Silver-Meal heuristic then determined a cost-effective run length for each
SKU by calculating the average cost to produce for increasing values of t (Equation 4)
until the average cost stopped improving. In this equation, A is the setup cost, t the
number of periods to produce for, r the holding cost, v the product value, and D(t) the
total demand for periods up to and including t.

Equation 4 - Silver-Meal Average Cost

= ^+2t(t-l)*r*i7*D(Q

64

This first step did not take into account available production capacity based on the
imposed labour schedule. It might have scheduled too little (wasted capacity) or too much
(infeasible) production. Fortunately, setup costs and holding costs are almost impossible
to properly estimate and therefore can be adjusted to suit production needs. In fact,
Brown (1967) proposes that the correct value of r is that which suggests inventory levels
that are consistent with a particular company's corporate strategy.

By recursively

altering the value of A/r, which will increase or decrease the production lengths, an
optimal value is found that ensures that the weekly production will exactly match
scheduled production. Malone and Oostvogels recommended running the model for the
first week as well as several weeks into the future to avoid any infeasibilities in future
periods because the heuristic cannot consider multiple periods at once.

Regardless of the value chosen for A/r, the solution will always produce for some integer
number of future periods. Automating the calculations also means that the solution can be
reached very quickly. Although the approach has been shown to be effective, it does
suffer from a number of drawbacks. First, it is a heuristic model and the final solution
may or may not be optimal. Second, it cannot consider multiple periods at a time and any
infeasibilities that arise must be handled outside of the model. In addition, Silver and
Miltenburg (1984) noted that for cases where demand experiences rapid declines or
several periods with zero demand, Silver-Meal will always suggest one replenishment to
cover all remaining periods when in fact, it may be beneficial to introduce other welltimed replenishments during the horizon. This can occur in a situation where a product is
being replaced or has drastic seasonal demand patterns, which is common in the ice
cream market.
Biggs (1979) points out that lot-sizing and scheduling techniques have always been
considered independently, even though it is likely that the two affect one another. This is
certainly true in ice cream production, where proper product sequencing can drastically
reduce setup times and product loss, which could in turn lead to the scheduling of smaller
lot-sizes. Developing a method that can incorporate both decisions at once could result in

65

large cost savings. Grouping products into families not only removes unnecessary detail
from the model formulation, it also forces the solution to schedule like products in the
same period. When dealing with ice cream production, where the sequence of products
has such a large impact on efficiency, this additional benefit is very useful. Although
Model C will ultimately determine production sequences at a detailed level, it must work
with the products and run quantities provided by Model B. If Model B groups products
with common base mixes and packaging together then Model C will obtain better results
when sequencing them.

From the literature, it is clear that grouping products based on shared setup costs has
many scheduling benefits in a process environment. However, none of the articles
discussed here provide details on the best course of action for creating these groups.
Products with the same base mix share a common setup cost, but so do products with the
same packaging. The first results in ingredient savings and the second negates the need
for maintenance when making a changeover. As well, most research has focused on
constraining the family production to meet the previously determined type production.
The constraint means that families must be subsets of types and adds further restrictions
on an already tightly constrained system. The decision of how to constrain the production
must be made carefully so the structure does not become too centralized.

A model that does not consider multiple periods in the future is likely to develop capacity
issues. However, for every additional period included in the model, the solution time is
increased. The quality of future forecasts also decreases as they extend further into the
future. There exists a distinct trade-off between model complexity and ensured feasibility
in future periods. Determining the number of future periods to consider may depend on
the complexity of the model, the production process, the power of the solver software,

and the quality of the future forecasts.

Scheduling models should be designed to plan for enough production to cover an integer
number of future periods when demand is deterministic, as proven by Wagner and Whitin
(1958). Scheduling more or less results in excess inventory costs when the product is up

66

for production again. In the case of random demand, buffers can be incorporated to
account for the uncertainty of the forecast. In addition, an ideal model would be capable
of making lot-sizing and scheduling decisions simultaneously in a system where one
affects the other. Unfortunately, the decisions are difficult to compute concurrently and
the results are not always meaningful. A more detailed discussion is provided in the
literature view for Model C, section 7.1. However, a feedback loop that updates the cost
of a setup in the disaggregate model as smarter sequencing decisions are made by the
detailed model can help to manage this issue.

6.2

Initial Model Approach

The first approach to this problem was to design a linear programming model that
minimized holding and setup costs by scheduling each individual SKU. The model is
similar to Allen and Schuster's (1994) disaggregation plan with an expansion to include
calculating the requirements for all families simultaneously rather than one at a time.
When a product is selected for scheduling, its family is also scheduled and a family setup
cost is incurred. Additional products from that family can then be scheduled with no
additional family setup cost. Production is constrained by the total production
requirements determined in the aggregate model. The general formulation follows.

Indexes:
T
P
F
F(p)

- set of periods
- set of products
- set of families
- set of products p that are in family f

Data:
SSpt
Dpt
hcp
fcf
pcp
p+t
p"t

- minimum safety stock level for product p in period t


- demand for product p in period t
- holding cost for product p
- setup cost for family f
- setup cost for product p
- maximum total production for period t
- minimum total production for period t

67

M, p

- large numbers

Variables:
Ipt
Ppt
Zpt
Xft

- amount of inventory in storage for product p in period t


- amount of production of product p in period t
- 1 if product p is produced in period t, 0 otherwise
- 1 if family f is produced in period t, 0 otherwise

Minimize:

Xftfcf+

Z ZZptpcp

^ ^ ipthCp+Y,YJ
t

Subject To:
lpt-lpt+i-SSpt-Dpt
Ppt - M * Ztp < 0

Zpt-p*Xft<0

+ Ppt = 0

PEP,tET

(/.l)

pEP.tET

(/. 2)

fEF.tET

(7.3)

peP(/)

]Tppt-pt+<0
v

tET

(7.4)

Zppt-Pt"^o

tET

(7-5)

The model minimizes inventory holding costs, family setup costs, and product setup
costs. Equation (1.1) is a typical inventory balance constraint for each product in each
period. Equation (1.2) turns on the product binary variable Ztp if product p is produced in
period t. Equation (1.3) turns on the family binary variable Xfp if any of the products in
family f are produced in period t. Equations (1.4) and (1.5) ensure that the production of
all products falls within the capacities as determined in Model A.

Although the model formulation is relatively simple and easily populated with data, it
suffers from one very significant drawback. To trigger the setup costs, binary variables
are turned on and off with the use of large coefficients. Models with these types of

68

constraints are commonly known as fixed charge problems, and as Williams (2006)
notes, the use of large coefficients results in a poor approximation of the polygon that
bounds the integer solution. The lack of a tight constraint increases the feasible region
and requires large branch and bound trees to solve, effectively increasing model solution
times. To properly model the problem and avoid impractical solution times, the
coefficient must be just large enough to properly constrain the binary variable. In the case
of M, this number must be at least as large as the largest production run for some product
p in period t that might ever be scheduled. During a 16 hour production day, roughly
40,000 tubs of 2L product can be produced. Given that the company produces up to 6
days a week, M must equal at least 240,000. In the case of p, it must be large enough to
account for every product in the largest family being produced. This is easily calculated
and is equal to 44. Unfortunately, the use of large numbers has a negative effect on model
run time regardless of the type of solver used. An initial model run using CPLEX 9.0 had
not converged after 24 hours.

Another issue that negatively impacted the solution time was that the model was free to
choose its own run quantities for each SKU. Wagner and Whitin (1958) showed that
producing for fractions of weekly demand results in excessive inventory costs. The model
only needs to schedule enough production to meet the demand for an integer number of
future periods.

6.3 Formulating the Model


Two changes were made to improve the model by reducing its size and solution time.
When scheduling a group of products that share a common setup, costs are reduced if all
products are produced at the same time. Ideally, all products in a family will run out
concurrently and can be replenished in the same period. Silver, Pyke, and Peterson (1998)
discuss that in some cases, certain items in the family may have significantly higher setup
costs or lower average holding costs compared to the rest of the items, and it may be cost
effective to produce them less often, for example, every second time the family is
produced. There are equations for calculating replenishment cycle intervals based on the

69

EOQ formula. However, the equations assume constant demand and do not include
capacity constraints. A heuristic is needed to address production capacities, but it
assumes that capacity constraints are constant. Ice cream demand is not constant and the
aggregate model recommends changing production capacities throughout the year,
rendering both methods ineffective in this case.

Because of the difficulties inherent in coordinating alternating item replenishment cycles


in a changing, capacitated environment, and because product families naturally contain
products with similar setups and demand patterns, the decision was made to produce
every product with positive effective demand in a family at the same time. It follows that
the amount of each product produced within a family should be equalized so that all
products are expected to run out in the same period. If a product runs out too soon, then it
must be produced before the rest of its family and lose the shared setup savings, or the
whole family production can be moved forward and stored until it is needed. If a product
runs out too late, then extra holding costs were being incurred throughout the
replenishment cycle. The decision to produce all products simultaneously and equalize
their run out times means that the model need only consider production decisions in terms
of each family rather than the individual products.

After determining that all products in a family will be replenished simultaneously, the
next step was to determine how large replenishments should be. Wagner and Whitin's
(1958) work on a dynamic version of the economic lot size model proved that when setup
and production costs are constant across all periods, it is never desirable to place an order
and bring in inventory in the same period. Instead, the extra inventory should be brought
forward and added to the next order at no additional setup cost but at a reduced holding
cost. With this simple proof, a problem with an infinite n u m b e r of possible solutions is

reduced to a finite size. The question is no longer "how much should be produced" but
"how many weeks should production cover". The replenishment cycle for each family
should be just enough to cover some integer number of future periods. In fact, the size of
the problem is directly related to N, the number of periods being considered. If initial
inventory is zero, then the total number of possible production quantities for all periods is

70

equal to N(N+l)/2. Model B is currently set up to cover 3 months into the future, or 13
weeks, for a total of 91 possible weekly starting points. Wagner and Whitin also noted
out that if initial inventory is not zero, it can be netted out from the demand, period by
period, until such time that the remaining inventory is not enough to cover the demand,
which is the same methodology for calculating effective demand.

Wagner and Whitin's approach is limited by the fact that it is based on deterministic
demand forecasts. In reality, forecasts are subject to error and the actual demand rarely
matches the estimated requirements. If actual sales are higher than the expected forecast
then products will run out sooner than anticipated. If actual sales are lower, then
additional inventory will be carried forward at an incurred holding cost. The problem is
compounded when products are grouped into families, because it only takes one product
in the family to run our early to trigger the whole family for production. Possible
solutions to this problem include building in a buffer to each product's production to
offset the chance of dropping below the safety stock level too soon, or allowing a product
in a family to drop below its safety stock if the rest of the family does not require
scheduling.

Calculating the N(N+l)/2 production quantities for each family is straightforward. In


period 1, the optimal production policy will be to produce enough to cover some whole
number of future periods. The forecasted demands are known, so it is simply a matter of
summing them up sequentially, resulting in N possible production quantities for period 1.
For example, consider a product with demands 20, 30, and 15 in periods 1, 2, and 3
respectively. In period 1, the options available are to produce just enough to cover period
1 (20), cover periods 1 and 2 (20+30=50), or cover all periods (20+30+15=65) (see Table
8). If option 1 is chosen, then w h e n period 2 arrives, another production run will b e

necessary. The process is repeated for period 2, except now there are only N-l future
periods to consider. Produce enough to cover period 2 (30) or 2 and 3 (30+15=45). In
period 3, the only option is to produce enough for that period (15). If the same scenario
had started with an initial inventory of 30, then the resulting effective demands would be
0, 20, 15 and the according production path is shown in Table 9. Although this method

71

was originally intended for individual products, it can easily be extended to product
families by summing up family requirements in each period.
Table 8 - Wagner Whitin Dynamic Lot Size Example 1
To
From

tl

t3

t2
20

tl
t2

50

65

30

45

t3

15

Table 9 - Wagner Whitin Dynamic Lot Size Example 2


To
From
tl
t2
t3

tl

t2
0

t3
20

35

20

35
15

Once the family lot sizes are established, their associated production and holding costs
can be calculated. When a family is produced, a major setup cost is incurred. Every time
a product within the family is produced, a minor setup cost is incurred. When production
covers more than one period, the excess inventory incurs a holding cost equal to the
amount remaining at the end of each period multiplied by a holding factor. These costs
can be quickly calculated using a spreadsheet.
Wagner and Whitin also developed an algorithm for determining which of the possible
production paths is the least expensive, although this is not particularly useful in this case
because their solution ignores production constraints. Instead, the problem is modelled as
a series of node networks that are optimized simultaneously by a linear programming
solver. The transformation from a dynamic linear programming problem to a mixed
integer flow problem is very similar to Eppen and Martin's variable redefinition model
(Eppen & Martin, 1987). Figure 6 shows a visual representation of one of these networks.
Each node represents a period in the planning horizon, from tO (the current state) to some
future period tx. Each arc represents the amount of production time needed to meet the

72

net requirements from the starting node up to the ending node. For example, taking the
arc from tl to t3 means producing just enough product to meet demand in the current
period and the following two periods. When period t4 arrives, available inventory will
have depleted to zero and the decision of which arc to take next will be independent of
which arcs were taken to arrive at the t4 node. Once the network has been defined for all
families, solver software can determine the least expensive path to get from period 1 to
period t for all families.

Figure 6 - Complete Node Network for a Family

If no additional constraints were needed to define this problem then it could be solved
very effectively as a shortest-path network problem or with the algorithm developed by
Wagner and Whitin. However, to maintain feasibility within the hierarchical structure
and produce a practical solution, Model B must be constrained by the labour scheme
selected by Model A. Specifically, the total weekly scheduled production must fall
somewhere between the upper and lower bounds defined by the labour scheme chosen in
Model A. The solution to Model B is the combination of least expensive paths from
period 1 to t for each family that maintains the prescribed labour level in all periods. This
one additional constraint has a significant impact on the solution time but is critical to

maintaining feasibility of the hierarchical structure.

73

6.4 Mathematical Model B


Model B is formulated as a mixed integer programming problem. The model is based on
weekly periods and aggregated product families, where a family is a group of products
that share a common setup cost. The binary variable Pf,u,t2 represents an arc from period
tl to period t2 for family /. If the variable is equal to 1 then the family is produced in
period tl with just enough capacity to run out at the end of period t2. The capacity
utilization associated with turning on a production arc is Uf)tijt2- The value associated with
each utilization variable is calculated outside of the model in a spreadsheet and imported
before each run. A detailed discussion of the construction of this spreadsheet is found in
section 6.5.2. The cost of turning on each production arc is represented by Cf,ti,t2 and is
also calculated in the spreadsheet. A discussion of the cost calculations is found in
section 6.5.3.

Indexes:
F
T
L
F(l)

- set of product families


- set of periods
- set of lines
- set of families f that can be produced on line 1

Data:
Uf,ti,t2
Cf,ti ,t2
ca+ti
ca'ti
p
period

- production required to produce family f in period tl to cover tl to t2 (hr)


- cost of producing family f to cover periods tl to t2 ($)
- maximum production on line 1 in period t (hr)
- minimum production on line 1 in period t (hr)
- penalty cost for exceeding the maximum or minimum bounds by one hour per
($)

Variables:
Pf,ti,t2 - 1 if family f is produced in period tl to cover periods tl to t2, 0 otherwise
St,ii,i2
+

Pe n
Pe'ti

- production transferred from line 11 to line 12 in period t (hr)

- penalty used on line 1 in period t to exceed maximum production (hr)


- penalty used on line 1 in period t to drop below minimum production (hr)

Minimize:

Z Z Z 'Wc/.atz + Z Z p(Pe" + Peil)


f

tl

t2

74

Subject To:

]T 2//,ti,t2 = 1

fEF.tET

(5.1)

tl<tt2>t

y y y uf,ti,t2Pf,u,t2 c a m + ^ m + /^ - ^ n ^ ~ ^ $ti,n,i
,12
12
~n t2>t /&F(0
TT
T2
lEL,tlET,t2ET

/1 /

(B. 2)

u
f

fxtiPf,\,t2 cau ~ Peu + y Si,a,i2 ~ y Si,n,i2

t2>tfEF(l)

St,n,i = 0

11

12

lEL,t2ET

(fi.3)

t G T,11 E L

(B. 4)

Pf,ti,t2 6 {0,1}

The model objective is to minimize production costs and penalty costs. Production costs
are the setup and holding cost associated with each path in the network. Penalty costs are
used to create elastic capacity constraints. Equation (B.l) ensures that every family in
every period is covered by one production arc in the network. As long as t is between
some tl and t2 value for which P = 1, demand for that period is covered. Equations (B.2)
and (B.3) are elastic constraints that keep production constrained to the maximum and
minimum values imposed by Model A's solution. The equations also contain slack
variables that allow the model to transfer production between lines if needed, and penalty
variables for exceeding or not meeting scheduled production. Equation (B.4) does not
allow slack transfers to line 1 as it is the most in demand and many products made on line
1 cannot be made on any other line. No restrictions are needed on lines 2 and 3 with the
current product mix. Additional slack constraints can be added in the future if needed.

The development of capacity constraints (B.2) and (B.3) required substantial


consideration and call for further discussion. Equation (B.2) constrains the upper
production capacity for all 13 periods, whereas equation (B.3) is only applied to the first

75

period. To maintain the labour schedule laid out by Model A, scheduled production can
not exceed the available production hours in any period. A solution for the upcoming
week is not feasible if it will result in capacity shortages later in the year. To maintain the
inventory levels determined by Model A, the first period must schedule at least as much
production as Model A. If meeting demand for all families in the first period requires less
time to produce than Model A scheduled, Model B will schedule enough production to
meet more than the first period of demand for some families, thus accumulating
inventory. The lower bound constraint should not be imposed on the production in weeks
2-13 because those periods require information about periods 14-25 to make a proper
decision. Instead, the lower bound constraint is only imposed on the first period and the
model is solved on a rolling horizon so as week 2 is being scheduled, the model has been
updated to include week 14. As a result, the model can produce at most 13 weeks worth
of product at a time, and employing a first-in-first-out policy will generally result in
warehouse stock is never more than three months old.

Model A is capable of assigning production for a given product group to more than one
line in a period because the binary variable PM is distinguished by line. In the interest of
keeping Model B small and quick to solve, the ability to distinguish production by line
for each family was left out of the model. Adding line assignments would increase the
model complexity and the distinction is not technically necessary as most products can be
produced on any line. Instead, each family is first scheduled to its preferred production
line, determined by the production schedulers, and if one line's capacity is fully utilized
then it can borrow slack from another line. Borrowing slack actually represents producing
some products on their non-preferred line. To maintain the labour scheme defined in
Model A, the model only allows the increase of one line's capacity through the
equivalent decrease of another with the variable Stjii,i2- A variety of additional constraints

can be applied to the amount of slack that can be transferred between lines, and in this
case line 1 is not allowed to borrow slack because many products can only be produced
on line 1. The addition of constraint (B.4) ensures that line 1 capacity can not be
artificially inflated by trading with the other two lines.

76
The penalty variables Pe+ti and Pe ti were added to the initial model design to improve
solution time. Ehrgott and Ryan (2003) showed that in the case of multiobjective
combinatorial optimization problems such as this, elastic constraints can reduce solution
times without any loss of optimality. By allowing constraints to be violated and
penalizing the violation in the objective function, the solution can be reached in fewer
iterations and generally without incurring any penalties. Ehrgott and Ryan also observed
that smaller penalty coefficients in the objective function tend to result in better solution
times, though did not offer suggestions for choosing appropriate values. If the coefficient
is too small then the solution may include constraint violations, but if it is too high then
the elastic constraint is essentially no longer elastic and the benefits are lost.

An empirical test was performed to determine an appropriate value for the penalty
coefficient (p) in the objective function. One particular instance of the model was still
3.92% from optimality after 20 hours. To improve the solution time, penalty costs were
added and the model was solved to within 2% of optimality at five different coefficient
values. Based on the units used for equations (B.2) and (B.3), a penalty coefficient
translates to "dollars per additional hour of production" that is added or subtracted from
the maximum and minimum bounds. The solution time was compared against the total
production costs and the number of penalty hours the solution allowed (Table 10). An
appropriate value for p will be low enough to improve solution times, but high enough to
keep penalty hours low.

Table 10 - Results of Elastic Constraint Testing

Penalty Cost (p)

Solution Time

Production Costs

Total Penalty Hours

N/A

20 hrs +

N/A

N/A .

$50,000/hr

2 hrs, 27 min, 51 sec

$501,514

0.0000

$25,000/hr

0 hrs, 09 min, 33 sec

$499,167

0.0167

$10,000/hr

Ohrs, 12 min, 14 sec

$500,569

0.0000

$l,000/hr

0 hrs, 01 min, 14 sec

$466,443

25.916

$10/hr

0 hrs, 00 min, 0.39 sec

$304,580

1062.89

77

With no elastic constraints, the model still has no solution after 20 hours of computation
time. Implementing a weekly model that requires more than 20 hours to solve is
impractical. Adding a penalty cost of $50,000 for constraint violations improved the
solution time to only two hours at no penalty. Charging $25,000 and $10,000 decreased
the solution time even more dramatically and introduced negligible penalties. Setting the
penalty costs any lower resulted in significant penalty hours and offered little
computational improvement. Based on these tests, p is currently set to $10,000 for both
the upper and lower elastic constraints.

Setting p equal to $10,000 produced acceptable results in this case but that does not
guarantee that every run of the model will react similarly. Unfortunately, the appropriate
value for p will change with each change in the model data. Ideally, starting with a small
penalty and slowly increasing it as needed can keep violations acceptably low. Most
popular solvers are not equipped to handle this process directly. One group of researchers
transformed the penalty costs to remove them from the objective function and instead
imposed them through a series of cut constraints (Vielma, Murray, Ryan, & Weintraub,
2007). For each level increase in the penalty cost, a new constraint is added. Their
method offers some additional flexibility and might be useful if regular use of the model
encounters this problem.

6.5 Data
Populating a model with accurate, up to date information is, in part, what sets the general
models apart from the applied projects. Determining the best way to group products and
build the appropriate production and cost matrices for Model B required careful
consideration at every step. This section outlines the methodology used to address each of
the data issues.

78

6.5.1 Creating Family Groupings


Hax and Meal (1975) defined families as subsets of types that share a common setup
procedure. They then attempted to match family production to meet the total type
production as determined in the higher model. However, it may not necessarily be true
that products with similar production rates and demand patterns will also inherently share
common setup procedures. In fact, in the case of ice cream production, there are many
products from differing groups that would benefit from being scheduled together. For
example, neapolitan ice cream requires extensive setup times to arrange all three flavours
to run together. Producing all neapolitans of all sizes on the same day, even though they
are all from different product groups, saves significant setup costs. To avoid the problem
of cross-contamination between allergen and non allergen products, all products
containing a particular allergen could be scheduled to run together. There are many
advantages to creating families that are independent of the groups.

If families are not subsets of groups then family production cannot be constrained by the
group production determined in Model A. However, the group production dictated by
Model A is only one of many reasonable solutions that exist at this high level. Rather
than force Model B to adhere to the detailed production levels that happen to coincide
with 0.01% of optimal, a more relaxed approach is to adhere to the overall labour levels
only. Model B has more freedom to optimize the weekly schedule, families can cross
over types, and the plan in Model A is still preserved at the lower level.

The most complex and time-consuming type of setup is a packaging change. Switching
packaging often involves exchanging parts of the line machinery and requires the skilled
labour of a maintenance mechanic. The line can be stopped for an average of 30 minutes
while the change takes place, which is significant when compared a typical run time of

two to eight hours. Because packaging changes are the most complex type of setup,
product families are typically separated by packaging. Packaging can differ by size (1L,
2L, 11.4L, etc.) and by style (paper, plastic, deep lid, seal). Unlike the Model A
groupings, some families contain products that do not fit the same number to a pallet
even if their tub size is the same. Table 11 contains a list of sample families, most of

79

which have the same tub size (f015, f072, f091). Some exceptions were made for certain
products that could benefit from being produced together despite a difference in
packaging. These types of products include ice creams with more than two base mixes
(neapolitan, moon mist, rainbow sherbet) and products with particularly strong
ingredients that are difficult to clean (mint chocolate chip fudge). For example, in Table
11, f006 consists of three-flavoured ice cream products that do not have consistent
packaging types.

The next most undesirable setup is switching from one mix type to another. The line is
completely flushed of mix, a process that takes time and results in considerable product
loss. From a cost perspective, a mix change may be more expensive than a packaging
change if labour costs are ignored. Maintenance and line operators both work regular
shifts regardless of whether they are performing a changeover so it is valid to exclude
them. The only cost left is the significant product loss that results from flushing the line.
The product families were further decomposed by base mix. All the families presented in
Table 11 share a common base mix. The No Sugar Added (NSA) chocolate flavour is
such a unique mix that it is the only product in its family (f091).

Lastly, switching from one flavour to another requires that the flavour vats be cleaned.
This process is relatively quick and can often be completed in only a few minutes with
minimal ingredient loss. With the products already grouped by packaging and mix, the
time and cost associated with changing flavours is minimal and no further breakdowns
were required. In total, 103 product families were created and contain anywhere from 1 to
44SKUs.

80

Table 11 - Sample of Product Family Groupings

Family

Brand

Flavour

Tub Size (L)

Tubs /Pallet

i/c
i/c

11.4

80

11.4

80
864

Type

f006

Brand A

Neapolitan

f006

Brand A

Rainbow

f006

Brand B

Moon Mist

I/C

1.89

f006

Brand C

Moon Mist

I/C

768

f006

Brand G

Moon Mist

I/C

11.4

80

f015

Brand D

Butterscotch

390

f015

Brand D

Strawberry

I/C
I/C

390

f015

Brand D

Vanilla

I/C

390

f015

Brand C

Butterscotch

I/C

330

f015

Brand C

Vanilla

I/C

330
330

f015

Brand E

Vanilla

I/C

f015

Brand E

Butterscotch Ripple

I/C

330

f072

Brand A

Maple

I/C

1.89

864

f072

Brand A

Vanilla

I/C

1.89

864

f072

Brand B

Vanilla

I/C

1.89

864

f072

Brand B

Orange Pineapple

1.89

864

f091

Brand F

Chocolate

I/C
NSA

1188

6.5.2 Production Matrix


Model B is structured as a node network with production requirements from period 1 to
period 13 for all product families. Each family's requirements consist of a 13x13 upper
triangular matrix with all possible production paths from start to finish. Production is
expressed in "hours of required production time" so it can be easily constrained by the
labour scheme's "available weekly production hours". Table 12 shows a sample matrix
for a particular product family. Each cell includes the setup time for the family, the setup
times for each product being produced in the family, and the total production time needed
to meet demand for the corresponding periods. As expected, the least amount of
production time required to reach the last period is to produce everything in the first
period in 10.41 hours. The most time intensive path is to produce the minimum amount
each period. The result of this decision is the sum of the diagonal for a total of 14.08
hours. The latter takes longer due to the additional setup costs incurred at each step.

81

Neither of these paths are necessarily the least expensive, due to the cost of holding
excess inventory versus incurring additional setup costs.
Table 12 - Sample Production Matrix
family

period

f001

0.61

f001

f001

f001

f001

f001

f001

f001

10

11

12

13

1.16

1.80

2.44

3.08

3.89

4.55

5.34

6.15

7.11

8.06

9.26

10.41

0.72

1.36

2.00

2.64

3.45

4.11

4.90

5.71

6.67

7.62

8.82

9.97

0.81

1.45

2.09

2.90

3.56

4.35

5.16

6.12

7.07

8.27

9.42

0.81

1.45

2.26

2.92

3.71

4.52

5.48

6.43

7.63

8.78

0.81

1.62

2.28

3.07

3.88

4.84

5.79

6.99

8.14

0.98

1.64

2.43

3.24

4.20

5.15

6.35

7.50

0.91

1.70

2.51

3.47

4.42

5.62

6.77

1.04

1.85

2.81

3.76

4.96

6.11

1.14

2.10

3.05

4.25

5.40

1.38

2.33

3.53

4.68

1.45

2.65

3.80

1.70

2.85

Hours of production time

f001

foot

10

f001

11

f001

12

f001

13

1.73

Defining the production matrix is relatively straightforward, but calculating the 13x13
matrices for all 103 product families based on their starting inventories, forecasted
demand, production speeds, and setup times requires considerable computation. The
process needed to be as easy to implement as possible so that the operations coordinators
could implement the model with minimal effort. Automating the process so that it can be
carried out on a weekly basis is critical for a successful implementation. The following
section details the creation of the automated production matrix.

6.5.2.1 Calculating Effective Demand


The first step in developing the network is to manipulate the forecasted demand and
starting inventories into "effective demand" before any aggregation occurs. Like Model
A, Model B must consider whether a product's existing inventory is enough to meet
demand and safety stock levels for some number of future periods. If so, then that
product's demand is effectively zero for those periods.

82

In addition to the typical implementation of effective demand, there is a second issue to


address at the detailed level. The sales forecast for each product represents a certain
amount of that product being shipped from the warehouse every period. Periods are one
week in length and products are being shipped out every day. If production is planned in
a certain period to meet the demand for that period, then there is a 50% chance that it will
be scheduled to ship before it has even been produced. To guarantee that production
meets demand at all times, products are currently scheduled for production one week
before their expected sale. To account for this in the model, the entire effective demand
schedule is shifted forward by one week. In some cases, last minute changes to the
forecast or production schedule result in a positive non-shifted effective demand in the
first period. Ideally, this demand would have been satisfied with the previous week's
production, but instead it is added to the shifted production requirements for the
upcoming production week.

The shift in production also means that the company will be carrying, on average, one
week of buffer stock for each item. The result is effectively the same as carrying safety
stock and the company may decide that between the production foresight provided by the
model and the shift in production by one week, additional safety stock is not necessary.
Management will likely wish to make these decisions after the model has been
implemented for a significant amount of time and their confidence in the results is
solidified.

6.5.2.2 Determining Production Hours


After the sales forecast and inventory amounts have been translated into effective
demand, they are expressed in terms of "tubs of product". However, the labour schedule
from Model A is expressed in terms of "total hours of weekly production" for each line.
Converting time to product tubs is not practical because the number of tubs that can be
produced in an hour varies largely depending on the size of the product. Converting tub

83

requirements to time requirements is less problematic because they can be calculated for
each individual product in the family and then summed.
Model B does not distinguish between lines so it is important that using one production
speed over another will not greatly affect results. At most, the line conversion rates differ
from one line to another by no more than 5% and in many cases the difference is
negligible. The effective demand for each product is divided by its speed in tubs per hour
to determine the total hours of production required.

6.5.2.3 Setup Times


When dealing with groups of products with shared setup procedures, setup costs are
typically broken down into major family setup costs and minor inter-family setup costs.
The same method can be applied to setup times. The packaging type and the mix type are
generally both used as criteria for grouping the families so the setup time can be
expressed as "family setup time + flavour setup time". If multiple products from the same
family are produced in sequence then there is no need to incur the family setup time
again. Instead, the total setup time would become "family setup time + flavourl setup
time + flavour2 setup time + ... flavourN setup time". The more products in a family that
are produced in sequence, the smaller the impact of the initial family setup on the overall
production. The time to setup a particular flavour once a family has been started is
roughly the same regardless of which product was produced first. Therefore, these
flavour setup times are constant values and easily determined.

The company keeps paper records of all their production data including changeover
times. Setup information for a particular product was retrieved from multiple production
dates. On some dates, the product was the first in its family to be produced. On other
dates, it was produced second or later. By calculating the difference in setup times when
it was first versus when it was second or later, the family setup time and flavour setup
time can be distinguished from the total. For example, if it takes 15.43 minutes to setup
butterscotch ice cream when it follows chocolate, but only 4.87 minutes when it follows

84

vanilla, then 15.43 - 4.87 = 10.56 minutes of the first changeover can be attributed to the
mix change. Unfortunately, acquiring data for hundreds of products was not possible. The
dataset is sparse as there are many sequencing combinations that have never been
implemented in practice. Developing estimates is a more practical solution and these
estimates can be easily updated as more production information becomes available.
Currently, all family setups are set to 30 minutes and all product setups are set to 5
minutes. The company has plans to record their production data digitally within the next
year and as this information become more accessible, the model data will be updated.

6.5.2.4 Compiling the Production Matrix


Unlike Model A, the data for Model B is much more difficult to aggregate in a database.
The process is complicated and involves many fixed charges that database queries are not
designed to handle. Currently, information is manipulated in the database as far as
possible and the results are output to a spreadsheet for the remaining calculations. The
database provides the list of all products, their families, their demands expressed in hours
of production time, and their setup times. A VBA function programmed in the
spreadsheet then compiles this information into the appropriate 13x13 matrices for each
family. The VBA function could be incorporated into the database in the future if desired.

Figure 7 is a flowchart describing the VBA function. In brief, the function takes in the
family number, starting week, and ending week, and outputs the total production needed
to meet demand for that family within the specified period. The function searches through
the list of product SKUs sorted by family and locates all products in the family. If a
product has a positive demand at any point between the starting and ending weeks, then
this demand and its setup time are added to the total time. If a product has no demand
during this period then its setup time is not added to the total. After all the products have
been searched, if the total time is positive then the family setup time is also added. If the
total time is zero then no family setup is incurred. The total value is then returned to the
Excel spreadsheet.

85

Product SKUs, Families,


Setup Times, Demand by (
Week
Family Setup Times

Input Family
StartWeek
EndWeek
PUtilization = 0
Futilization = 0

Select first
product in list

>-
Next product
YES
Select first
period of
demand

YES
PUtilization =
PUtilization +
Demand

Next Period

YES

Return
\
Utilization J

FUtilization =
FUtilization + Family
Setup Time

YES

Return 0

K-NO<TUtilization > 0^>- NO

Figure 7 - VBA Utilization Function Flowchart

FUtilization = FUtilization +
PUtilization + Product Setup
Time
PUtilization = 0

86

6.5.3 Cost Matrix


The compliment to the production matrix is the cost matrix. Every value in the
production matrix has an associated cost of executing that production schedule. Costs
include the major family setup costs, minor individual product setup costs, and any
holding costs incurred as a result of producing for more than the current period. It is these
costs that the model is designed to minimize through optimal selection of a suitable
production path for each family. The cost of production is not included because it is
independent of the path chosen and is an unavoidable expense. Table 13 shows the
sample cost matrix that corresponds with the production matrix shown in Table 12. The
cost matrix is calculated and automated similarly to the production matrix. This section
outlines the process for determining appropriate costs and compiling them into the
matrix.
Table 13 - Sample Cost Matrix
1

2009

2058

2136

2262

2792

1989

2013

2065

2159

1989

2015
1989

10

11

12

13

2792

3251

3743

4272

2657

2657

3104

3580

4092

4450

5015

5263

4252

4799

5026

2077

2543

2543

2977

3438

3932

4074

4604

4810

2020

2454

2454

2874

3320

3796

3921

4433

4618

1989

2390

2390

2798

3228

3687

3794

4287

4452

2358

2358

2753

3168

3609

3698

4174

4318

2358

2740

3140

3563

3634

4092

4216

2727

3112

3517

3570

4011

4114

3097

3484

3519

3942

4024

3466

3484

3889

3950

3466

3853

3894

3835

3856

Dollars
f001

f001

f001

f001

f001

f001

f001

f001

f001

f001

10

f001

11

f001

12

f001

13

1989

3466

6.5.3.1 Setup Costs


Setups generally consist of a number of common elements, such as the wages of a skilled
mechanic to perform the changeover, lost opportunity costs, and lost product when the
line is flushed. The first two costs can be directly related to the time it takes to complete a

87

changeover, while the lost product cost depends on the production sequencing. The setup
costs and times are also very sequence dependent although sequencing is not determined
until the third model.

In 2007, an industrial engineering undergraduate senior design project was carried out at
the ice cream facility with the goal of reducing changeover times and unexpected
downtime. During their analysis of changeover times, Pryor, Ostrovsky, and Linder
(2007) calculated a labour cost per minute, however, they made the point that this cost
should not be included in the changeover analysis because unlike the case of unplanned
downtime, workers are not idle during a setup and it is an unavoidable expense.
Changeovers are done by the freezer operators during regular production hours. The
group also calculated the "cost of lost production" to account for the value of product that
could have been produced were a line running during a setup. However, Model B
accounts for lost production as a direct reduction in total capacity equal to the setup time.
Including it in the cost function would penalize the solution twice. The only remaining
cost is product loss. Product loss is an issue for the company that is monitored closely.
Every time a mix is changed for a family setup, the mix vats must be flushed. The vats
contain roughly 50 gallons of mix and at a sample cost of $6.00 per gallon, the value of
mix lost during a changeover is roughly $300. When a changeover happens within a
family, some mix and additional ingredients are flushed. These amounts vary from
product to product and must be estimated by the production scheduler. As more accurate
product loss information becomes available then the model data will be updated.

6.5.3.2 Holding Costs


Whenever production is scheduled to cover more than one period of demand, holding
costs will be incurred. As with Model A, the cost of holding inventory is typically
between 10%-15% per dollar per year. Add to that the cost of storing a pallet in the
adjacent warehouse (for example, $27/month) divided out by the number of tubs per
pallet and the total holding cost per week, per tub of product can be easily calculated.

88

6.5.3.3 Compiling the Cost Matrix


Like the production matrix, the majority of the calculations are carried out in Access and
then output to Excel. From there, VBA function tallies up the setup and holding costs to
populate the matrix. The function is very similar to the utilization function, as can be seen
in the flowchart for the process (Figure 8). The inputs for the function are the family
number, starting week, and ending week. The function searches the same utilization list
used by the production function and locates each product in the family. For each week
between the starting week and the ending week, product demand is converted to a
holding cost by multiplying it by the appropriate conversion factors calculated in Access.
The costs are also multiplied by the number of weeks that the product will be in storage
and then added to the total. If a product has a positive demand during the period being
considered, then its setup cost is also added to the total. If the demand is zero then no
setup cost is incurred. When the search is finished, if the total setup cost is positive then
the family setup cost is added to the total value which is returned.

/ Product SKUs, Families, /


| Setup Costs, Demand by I
I
Week, Holding Costs
\
Family Setup Costs
\
/input Family
StartWeek
/
EndWeek
/

/
/

Fcost =0

Select first
product in list

D=0
t= 1

,r

YES
Select first
period of
demand

YES

PCost = PCost +
Holding * Demand * t
D = D + Demand

YES

FCost = FCost +
Family Setup Cost

Return
Utilization

Return 0

NO

Figure 8 - VBA Cost Function Flowchart

FCost = FCost + PCost +


Product Setup Cost
PCost = 0

Next
t=

NO

90

6.6

Implementation

Model B is implemented in MPL because of its ability to interact seamlessly with


Microsoft Excel. Model data will change on a weekly basis as the schedule is updated,
recipes are altered, new products are acquired, and more. The data must be easy to update
and understand from the perspective of a production scheduler who has likely never used
any type of solver software. Storing the data in Excel makes it easily accessible to the end
user and MPL. The MPL code for Model B is in Appendix B.
Like Model A, Model B is based on forecasted demand estimates that may not match
actual sales. At this detailed level, unexpected changes to the schedule are common and
more difficult to absorb than at the annual level. Problems such as delayed raw ingredient
shipments, last-minute promotions, and unexpected downtime due to a power failure can
all change the forecast in an instant. Fortunately, forecasts become more accurate and less
likely to change as each period approaches. By the time the upcoming period is being
scheduled, the forecasted demand for that period is likely to equal actual sales. Model B
must be implemented in such a way that it can react to these changes.

As with the first model, a rolling horizon is used to schedule production on an infinite
horizon with a finite model. Although the model covers 13 weeks into the future, only the
first week is intended to be implemented. The remaining 12 weeks are used to ensure
feasibility in future periods by allocating proper production levels from the start and to
ensure that production covers some whole number of future periods. Of course, if the
actual sales differ dramatically from the expected demand then there is the possibility that
the model will not be able to meet demand without incurring overtime but in general the
solution will be viable. Running the model on a rolling, weekly basis allows the solution
to account for forecast and production uncertainties such as last minute flyer promotions

or even the loss of product due to unforeseen acts of nature. By constraining the horizon
to 13 weeks, the model can never produce more than 3 month's worth of demand at once,
which is useful in an industry that produces a product with a limited shelf life.

91
6.7

Results

The model consists of roughly 10,000 variables (9,373 production variables and a few
slack and penalty variables) and 2000 constraints. Solving to within 1% optimality
averages a solution time of roughly 20 minutes on a 2.80Ghz processor and requires
about 60,000 iterations. Decreasing the tolerance level to 2% improves the solution time
to roughly two minutes or 16,000 iterations. Considering the accuracy of the sales
forecast and the flexibility of production, 2% is considered an acceptable tolerance.
The model results are output to an Excel spreadsheet and include all production variables
(Pf,ti,t2), line slack, minimum penalty, and maximum penalty variables. Each family has
91 (N[N+l]/2 where N = 13) production variables that outline the possible production
paths from week 1 to 13. There are 103 families for a total of 13 x 91 = 9,373 production
variables. A sample of the production variables for family 001 is shown in Table 14 and
indicates that the family should be produced in weeks 1, 2, 3, and 9.
Table 14 - Sample Production Results from Model B
From
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2

To
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10

Prod
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0

From
2
2
2
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4

To
11
12
13
3
4
5
6
7
8
9
10
11
12
13
4
5
6
7
8
9
10
11

Prod
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0

From
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7

To
12
13
5
6
7
8
9
10
11
12
13
6
7
8
9
10
11
12
13
7
8
9

Prod
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

From To
7 10
7 11
7 12
7 13
8
8
8
9
8 10
8 11
8 12
8 13
9
9
9 10
9 11
9 12
9 13
1 0 10
1 0 11
1 0 12
1 0 13
1 1 11
1 1 12
1 1 13

Prod
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0

92

A VBA function converts the production variables into useful information for the end
user by working backwards through the node network and disaggregating the family data
to produce a table with the production quantities for all individual SKUs for the next 13
weeks. A flowchart of the VBA function is shown in Figure 9. The inputs are a product
SKU, its family number, and the week number (1-13). The function searches the model
output to find the product's family. Then it checks to see if that product is scheduled for
production during the week in question and how many weeks of demand that production
will cover. If no production is scheduled during that week, the function returns zero. If
production is scheduled, then the function searches the utilization table and locates the
product SKU. Then it sums up the demand from the start week to the end week and
outputs the resulting utilization. The production schedule corresponding to the family
data in Table 14 is in Table 15. Nothing is produced in the first two periods because
existing inventory levels are high enough to meet demand.
Table 15 - Family 1 Sample Production

P1
P2
P3
P4
P5
P6

t01
0
0
0
0
0
0

t02
0
0
0
0
0
0

t03
80
50
443
114
80
74

t04
0
0
0
0
0
0

t05
0
0
0
0
0
0

t06
0
0
0
0
0
0

t07
0
0
0
0
0
0

t08
0
0
0
0
0
0

t09
198
50
723
136
100
146

t10
0
0
0
0
0
0

t11
0
0
0
0
0
0

112
0
0
0
0
0
0

t13
0
0
0
0
0
0

Product SKUs, Families, Demand


by Week, Production Speed
Model Results: Family, FromWeek,
ToWeek, Produce (0/1)

Input SKU
Input Family
StartWeek
Production = 0

Select first
family in model
results

^>
)
NO-

Next Family

YES
Select first
FromWeek

Return
Utilization

Next
FromWeek

YES

''

iAfeek = x
\ToWeek/

Next Week
Production =
Production +
Utilization

YES
YES
Select first product
in dataset

Select first
week in
dataset

-YES

Figure 9 - VBA Produce Function Flowchart

94

The first week of data is similar to the type of schedule that the production scheduler
currently receives from the production coordinators. The difference is that the new
schedule is based on minimizing setup and holding costs and adheres to the labour
schedule prescribed for the year. The production scheduler is then responsible for taking
this list and developing a schedule for the week that minimizes mix loss and meets all
sequencing restrictions. As the final model in the hierarchical structure, Model C will
develop the schedule precisely and quickly. Until then, the production scheduler will fit
the products and run quantities produced by Model B into a feasible weekly schedule on
paper.

6.8 Testing and Validation


For a set of hierarchical models to be effective across an entire production system, the
higher levels must properly constrain the lower levels to meet the long term goals while
still allowing them the freedom to optimize the short term subproblems. To demonstrate
that the linkages between Model A and Model B are sound, a set of trial runs were
conducted with sample data based on the company's current forecast and inventory
levels.

First, Model A was solved based on some yearly forecast and starting inventory levels.
For this scenario, Model A was setup up to utilize at least 80% of the production it
scheduled. The resulting minimum and maximum scheduled hours produced by the
model are shown in Table 16. Figure 10 displays the resulting inventory levels for the
year and shows a distinct decreasing trend. This suggests that the current inventory levels
are too high. However, there is still a lot of production taking place in the first period,
likely because the existing inventories are not equally balanced across all products.

95

Table 16 - Labour Schedule for Model A


Actual (hours per week)

Upper Bound (hours per week)

Period

101

102

103

101

102

103

tOl

81.55922

64

64

88

80

80

t02

48

32

32

48

40

40

t03

48

40

40

48

40

40

t04

48

39.14206

32

48

40

40

t05

50

50

50

50

50

50

t06

50

50

50

50

50

50

t07

50

50

50

50

50

50

t08

50

49.75051

50

50

50

50

t09

50

50

50

50

50

50

tio

50

50

50

50

50

50

til

72.52846

64.89866

64

80

80

80

tl2

50

50

50

50

50

50

Total Inventory Storage


3,000
2,500
2,000
+-

Jj

1,500

TO

1,000
500

$
|

b
]?

**

rs

to

'
|
*
*Sr

&

<b

**

-,

..

h
,&
3b*

Figure 10 - Inventory Levels for Model A

Next, Model B was ran multiple times under changing conditions to compare the output
with Model A. First, Model B was solved for week 1 based on 13 weeks of the forecasted
demand and starting inventories used in Model A. Then Model B was advanced forward
by one week assuming that actual production in week 1 equalled scheduled production

96

and actual sales equalled the forecast. Lastly, Model B was re-solved for weeks 2-14. The
last two steps were repeated 11 more times to establish a production plan for the first 3
months.
The resulting production schedule is shown in Figure 11. The graph shows that Model B
remains within the boundaries of Model A in all periods and typically scheduled the
minimum amount of production necessary rather than the maximum because the existing
excess inventories resulted in zero effective demand for roughly half of the families in the
first few months.

Production Levels
~.... i _

240

\
yj

200 -

180

160 -

a.
n

140 -

. Yr

_ .

V t

V
\\

_ kVl l

Model B
Model A Max

120 "

^t?.

&

_._^

Model A Min

*~ 100
Bfi

'
tl

' t2

t3

t4

to

t7

t8

19

tlO

'

til

tl2

tl3

Weeks

Figure 11 - Production Levels for Models A and B

Figure 12 shows the resulting inventory levels for the first three months from the
production scheduled by Models A and B. The graph shows that the trends in Model B's
inventories follow Model A's very closely. However, Model B incurs more inventory
than Model A in many periods despite having scheduled roughly the same number of
weekly production hours. The results are encouraging because Model A's expected
production efficiency is based on the company's actual average output, which does not
account for any advantages resulting from family scheduling and optimized run lengths.

97

Model B is already producing improved results by achieving a higher expected output


with the family scheduling method. Model A is based on historical output data whereas
Model B considers improvements to the existing method.

Inventory Levels
3 nnn
3,UUU

2,500 -

mm

2,000
(A

1,500 1,000 -

Model A

500 ft -^

0.00

0.50

1.00

1.50

2.00

2.50

3.00

Month
Figure 12 - Inventory Levels for Models A and B

Figure 13 shows a sample of some inventory levels for families 26-30 over the course of
the 13 weeks. The saw tooth patterns in the graph demonstrate that Model B schedules
enough production to cover multiple periods for some families. Model B was not
constrained by any minimum production run lengths so the decision to produce for
multiple periods is based solely on meeting production levels and reducing setup costs.
The graph also clearly demonstrates how the model maintains a constant production level
from week to week, by staggering the periods in which each family is produced.

98

Figure 13 - Inventory Levels by Week for Model B

The results of this test scenario demonstrate how Model A effectively constrains Model B
while still providing the flexibility to schedule production as close to optimal as possible.
Model B also maintains the inventory levels prescribed by Model A without the need for
a direct constraint. Model B achieves improved efficiency by producing products with
shared setup procedures in succession. As Model B is used in practice, the actual output
of the process will improve and the new values can be used as inputs to Model A. As a
result, the expected inventory levels from Models A and B will match more closely.

6.9 Future Work


The work presented in this section demonstrates that Model B is capable of meeting the
schedule given by Model A and efficiently scheduling production. Scenario testing has
been successful thus far, but there are some areas where future work could be beneficial.
Because Model B does not consider detailed factors about each product, there is the
possibility that some of the products it selects for production will be impossible to
schedule. For example, a raw ingredient or packaging material may be unavailable at the
time of production. Model B develops its schedule with a 13 week lead time so there is
ample time to order raw materials, but some packaging is produced and delivered just in
time, so a delay on the suppliers end can affect production. There is also the possibility
that Model B will produce a schedule for which no feasible weekly sequence exists. Each

99

line can generally only produce one allergen per day, and if too many incompatible
allergens are selected in the week, then there will be no possible way to sequence them.
For these reasons, it may be prudent to run some analyses on the schedule produced by
Model B and check for the factors that may cause these infeasibilities before
implementing the schedule. If the allergen problem can be identified a few weeks in
advance than some of the allergens can be scheduled in an earlier period to alleviate the
problem. The product list can also be checked against existing raw material inventory
before attempting to assemble a schedule.

Model B does not consider the fixed mix batch size problem that becomes an issue at the
detailed scheduling level. If Model B can be adapted to consider the total mix batch
requirements for each arc scheduled in each week then it might be possible to constrain
production to integer batch sizes at the short term level. Developing these constraints will
require additional consideration so that they do not adversely affect the solution time of
the model. Calculating the mix batch requirements for each arc in the matrix will also
require significant data manipulation for an already large dataset. The scheduling
advantages at the detailed may outweigh the increased implementation time, because
coordinating mix production and finished goods production will reduce total mix loss.

Forecasting errors can have a strong impact on the short term schedule. If actual demand
differs from the forecast, the service level may drop, families will be produced earlier
than expected, additional holding costs will be incurred, and future production
projections will change. Incorporating stochastic demand directly into Model B may not
be possible and demand probabilities are not currently estimated by the company's
forecasters. Other solutions include building in allowances to each family's demand so

that if a product drops below its safety stock, but has not run out entirely, then the
decision to produce the family in the following period will be sustained. Simulating the
production scheduling process may also be a useful avenue for future exploration. An
analysis on the consistency of the current model schedule as it extends into future weeks
compared with some of the alternatives would be a useful future consideration.

100

Chapter 7
The Daily Sequencing Model: Model C
Model C is the final and most detailed level in the production structure. The purpose of
Model C is to develop a weekly schedule consisting of the products and run lengths
selected by Model B in the most efficient and inexpensive sequence possible. The
schedule is constrained by the production speeds of each line, changeover times, line
constraints, allergen constraints, mix batch sizes, and the labour schedule imposed by
Model A. The only cost to consider is the ingredient loss associated with each
changeover. Because changing from one mix to another requires flushing the production
line, and changing from a strong flavour to a mild one requires more cleaning and labour
than producing the milder flavour first, different sequences have different costs.

To complete the hierarchical structure, Model C will be implemented on a weekly basis


following the execution of Model B. Model C has yet to be tested within the scope of this
project. The first two models have been implemented and still provide useful information
without Model C. The work of Model C can be effectively performed by a
knowledgeable production scheduler until such time that Model C can be implemented.
The design for the detailed model is presented in this section, although it has yet to be
populated with real data and tested in detail.

The biggest difficulty at the sequencing level is that many products can be produced on
more than one line, but not all products can be produced on all lines. Sequencing
algorithms exist for minimizing the makespan or cost of a production sequence on one
line, but examples that assign products to multiple lines and also optimize their
sequencing are much harder to find. One option is to restrict the sequencing problem by
assigning jobs to lines beforehand based on best practices or the results of a previous
model. The advantage to this method is that it is relatively easy to compute, but the
method of assigning jobs to lines must be carefully designed so the sequencing model is
still free to create a schedule that is close to optimal. Alternately, a model may be

101
designed to sequence the jobs and select the appropriate machines simultaneously, which
can produce improved solutions but may come at a high computational price.
Allergen constraints lead to a variety of sequencing restrictions that must be incorporated
into the model. Once a product with an allergen has been produced on a line, that line is
contaminated with that allergen for the remainder of the day. The only other products that
can be produced on that line must also contain the same allergen. Some products even
contain multiple allergens. These products can succeed any product containing at least
one of their allergens, but can only precede products which contain all of their allergens.
For example, a "peanut and egg" product can succeed any "peanut" product and any
"egg" product, but it can only precede another "peanut and egg" product or a "peanut and
egg and wheat" product. The cleaning cycle performed at the end of each product day
washes away all traces of allergens so the sequencing can start fresh the next day. The
cleaning cycle could be performed during the day between products but the cost of the
cleaning and the lost production time makes it an undesirable option.

The suggested solution for Model C is a mixed integer programming problem that
minimizes the cost of changeovers while fitting all products into a weekly schedule and
meeting sequencing constraints. The model consists of variables Xjji that represent job j
following job i on line 1. By turning these binary variables on or off, production and setup
times are incurred and used to calculate the start time for each job. Any time a particular
job j cannot follow job i, such as in the case of allergen constraints, that combination of
Xjji is not included in the model. Line assignment restrictions are handled in a similar
manner. Dummy jobs are used to signify the start and end of each day and their start
times are fixed. The result is a series of Xyi variables that string together to create a
w e e k ' s worth of the least expensive production sequences on each line.

7.1 Sequencing Model Literature


Sequencing problems are very common among most production industries, and there is
no shortage of research on the subject of scheduling algorithms and models. One of the

102

most recognized sources on production scheduling is "Theory of Sequencing" by


Conway, Maxwell, and Miller (1967). The book classifies sequencing problems as the
task of scheduling N jobs on M machines while meeting assignment restrictions and
optimizing some criterion. The M machines may represent multiple production stages for
all products, or they may represent parallel machines in a single-stage system that can
produce every job. Problems can be either static (all products are ready to be scheduled)
or dynamic (products arrive intermittently to be scheduled). Products may move from one
machine to the next in a fixed flow, or they may move randomly through the process. The
criterion to optimize can be anything from minimizing cost, makespan, product loss,
work-in-progress, or lateness, to maximizing machine utilization. The authors suggest
that the only costs associated with scheduling are inventory, utilization, and lateness.
Additional research suggests that there are other costs, such a penalty for earliness
stemming from the just-in-time philosophy (Baker & Scudder, 1990).

The ice cream production system has three unrelated parallel production lines in a singlestage system. The line speeds are essentially the same but not all products can be
produced on all lines. The data is static, with all production run quantities known from
the start. Model B is designed to schedule production a week before the product is set to
be shipped so due dates are not a concern. Attempts to minimize makespan, lateness, or
earliness are also not of particular use in this scenario. As long as the makespan fits into
the weekly labour schedule, it is acceptable. Instead, the goal is to schedule the products
so that the mix and ingredient loss that result from each changeover are minimized. The
mix and ingredient loss is expressed in dollars because premium mixes are more valuable
than economy mixes and walnuts are more expensive than butterscotch ripple.

The most popular criterion for evaluating a parallel machine production sequence is time,

whether the goal is minimizing makespan (Lenstra, Shmoys, & Tardos, 1990; Alon,
Azar, Woeginger, & Yadid, 1998; Azizoglu & Kirca, 1999; Grigoriev, Sviridenko, &
Uetz, 2005; Li & Yang, 2009), minimizing lateness (Lee & Pinedo, 1997), or some
combination of the two (Baker & Scudder, 1990; Chen & Powell, 1999; SivrikayaSerifoglu & Ulusoy, 1999). These approaches are all based on the assumption that

103

capacity is a constraining variable to maximize. While this is true for a facility that
operators 24 hours a day, 7 days a week, it does not necessarily apply to an under utilized
ice cream facility. The models could be adapted to the ice cream case if there was a direct
link between the cost and time of executing a changeover, but because the only cost
considered in this case is product loss, it is entirely possible that a time-consuming
packaging change is more economical than keeping the same package size but flushing
the entire production line. If the extra production time is available then it should be
utilized to save waste.

Several papers have made the argument that lot sizing and sequencing problems need to
be made simultaneously in the case of sequence dependent setup times (Biggs, 1979;
Meyr, 2002). Production capacities are dependent on the product sequencing which in
turn affects optimum lot sizing. Unfortunately, lot sizing decisions need to be made on a
medium range horizon to capture cycle stock inventory and demand fluctuations, while
sequencing decisions consist of daily activities. A significant level of computing power is
required to schedule individual products at the daily level over several months, and
because actual sales are going to differ from the forecast, the schedules will still need to
be updated on a weekly basis. Combining the activities of the operations coordinators and
the production scheduler is also undesirable as it does not maintain the hierarchical
structure of the company decision making.

The simplest type of parallel machine scheduling model that focuses on cost is an
assignment model that considers each machine separately, essentially breaking the
problem down to a single-unit problem. Bowers and Jarvis (1992) designed their
hierarchical production plan to assign jobs to a particular machine in the disaggregate
plan, and then sequence the jobs on each machine separately in the detailed plan. First,
families and jobs were assigned to production lines based on where they could be
produced the most efficiently, ignoring changeover times. Then the task of minimising
total changeover time was formulated as a travelling salesman problem and solved using
common heuristics. Unfortunately, the speed of the ice cream production lines are almost
the same for all products and the bigger concern is minimizing changeovers between all

104

three lines. Restricting products to a line before sequencing them would only reduce the
available sequencing combinations and therefore restrict the best possible outcome. The
model was also not designed to account for scheduling constraints such as allergens or
the start and end of the production day.

7.2 Mathematical Model C


The daily sequencing model starts with the set of SKUs and their production quantities as
determined by Model B. Production quantities are converted to production times based
on the speed of each line and setup times between jobs are estimated. Each SKU's run
time is then treated as a job to be scheduled. Two sets of dummy jobs are also created for
each line to correspond with the start and end of the day. The dummy jobs have zero
production requirements, switchover times, and cost, and their start times are fixed to
match the labour schedule prescribed by Model A.

Indexes:
I, J
L
1(1)
J(i)
D

- set of jobs to be produced


- set of production lines
- set of jobs i that can be produced on line 1
- set of jobs j that can follow job i
- subset of jobs i that are dummy jobs

Data:
ptji
Sjji
Cjji
dtj
M

= time required to produce job i on line 1 (hr)


= time required to switch from producing job i to job j on line 1 (hr)
= cost to switch from producing job i to job j on line 1 ($)
= the start time for dummy job i (hr)
= large number, equal to the total production time available per line

Variables:
Y;i
Xjji
T,

- 1 if job i is assigned to line 1, 0 otherwise


- 1 if job j immediately follows job i on line 1, 0 otherwise
- start time of job i

105
Minimize:
Xijlcijl
i

Subject to:

Y, XW ^ Yn

l Gl

>i G K0, IZL

% < (yH + Yn)/2

M ( 1 - % j + 7} > 7* 4- ^ ( p t ^ + sm)Ya

i G /,; G 7(0

^ ^ X

0 7

r = dti

= l

/,; e ;(i), l e t

(C 2)
(c. 3)
(C. 4)

JEJCO

(C.5)

ieD

(c. 6)

The model objective is to minimize the total changeover cost between all products on all
lines. Equation (C.l) ensures that each product is assigned to one line and that that
product can be produced on that line. Equation (C.2) makes certain that if job j is set to
follow job i on line 1, that job j is also scheduled to be produced on line 1. Equation (C.3)
ensures that if job j follows job i on line 1 than both jobs are scheduled on line 1. For both
(C.2) and (C.3), the set of jobs j is restricted to only the jobs that can follow job i, to
account for allergen constraints and other production issues. Equation (C.4) dictates that
if job j follows job i on line 1, then the start time for j is greater than the start time for i
plus the production time for i plus the time to switch over from i to j . Equation (C.5) says
that every job j must be preceded by one job i and that j must have permission to follow i.
The very first dummy start jobs do not have permission to follow anything so they are
automatically excluded from this equation. Equation (C.6) assigns the dummy jobs their
forced start times to coincide with the beginning and end of each day. A similar, "less
than" constraint could be added if a particular product needed to be finished by a certain

106

date, for example if unplanned downtime in the previous week pushed a product's
production into the current week.

A week is modelled as one continuous production cycle with the start time for the first
dummy job on each line equal to zero and the start time for the last dummy job equal to
the total available production hours for the week. Intermediate dummy jobs ensure that
production for a job does not extend over from one day to the next. For example, a
schedule from Monday to Friday with 10 hours of production per day on line 1 would
result in the dummy start times shown in Table 17. The model is then free to schedule
production anywhere within these time slots without crossing over them. A product with
5 hours of production time could not be started at T = 18 because it would not finish until
T = 23 and dummy job lld02 must start at T = 20. Although it is certainly possible to
divide production up over two days, the resulting times and costs would be higher and
less efficient. If it is absolutely necessary to break up a production run then it can be
separated into two distinct jobs with appropriate setup times and costs for each.
Table 17 - Model C Example Dummy Start Times
Variable

StartTime

llstt

lldOl

10

Ild02

20

Ild03

30

Ild04

40

llend

50

The setup time from a dummy job to an actual job is always zero, because a dummy job
indicates the start of a day when setups are performed before the scheduled start up time
of the lines. T h e model will therefore consider the advantages of scheduling complicated

setups at the start of the day when determining an optimal production sequence.

The allergen restrictions are compounded daily, as once a peanut product has been
produced, only another peanut product can follow it, and only another peanut product can
follow that, and so on until the end of the day. To account for the fact that all sequencing

107
restrictions are reset at the start of each day, the dummy jobs are eligible to follow every
actual job and be followed by every actual job. Therefore, when the end of the day
approaches and the peanut product is followed by a dummy job, the dummy job acts as a
reset since any product can follow it. The only exceptions are the very first dummy jobs
that cannot follow anything and the very last dummy jobs that cannot be followed.

7.3 Model C Example Implementation


To test the formulation of Model C, an example was set up consisting of fourteen
products to be scheduled on two production lines over the course of two 16-hour
production days. The product information is in Table 18. Products 1-6 are dummy
products that correspond with the start and end of each production day on each line.
Products 7-20 represent the actual jobs to be scheduled. Some products can be produced
on both lines and others can only be produced on one. The production times are random
numbers between 2 and 5 hours, and changeover times are between .02 and .52 hours. A
list of all possible sequencing combinations between jobs was also randomly generated so
that not all combinations are possible.

Table 18 - Model C Example Product Data

product

line

prod time

start time

product

line

prod time

13

1.67

16

13

3.77

32

14

3.35

14

3.4

16

15

2.75

32

15

3.08

1.25

16

2.08

8
9

2
2

2.67
1.6

17
18

2
1

3.33
2.64

10

1.52

18

11

1.19

19

1.69

11

3.94

19

3.62

12

1.48

20

3.62

12

2.41

20

1.09

3.79

start time

108

All data was stored in an Excel spreadsheet. The problem was modelled in MPL and
solved using CPLEX 9.0 to within 1% of optimal (see Appendix C for the MPL code). A
solution was found after 41,718 iterations or 9.36 seconds on a 2.80GHz processor. The
resulting minimum cost was $591.16 and the production sequences for lines 1 and 2 are
shown in Figure 14 and Figure 15. As the figures show, there is still some unused
capacity on both lines, although line 1 is much less constrained. Total setup times for
both lines over both days were 5 hours.

Line 1 Production
0
Day 1 Start

5
I

10
I

15

20

25

Job 16
Job 10
Job 14
Job 20
Day 1 End

Job?

Job18

Day 2 End

Setup

Figure 14 - Model C Line 1 Production Example 1

Production

30

109

Line 2 Production
Day 1 Start

10

IS

20

25

30

35

Job 12
Job 17
Job 9

Job 11
Day 1 End

Jab 8
Job 15
Job 13

Job 19
Day 2 End

Setup Production
Figure 15 - Model C Line 2 Production Example 1

The model was solved a second time with more restrictions added. Job 14 could no
longer be produced on line 1, job 15 could not follow job 8, and job 10 could not follow
job 16. The solution was reached in 13109 iterations or 3.06 seconds. The new optimal
value was $605.50 and the setup times totalled 6.78 hours. Figure 16 and Figure 17 show
the new production sequences which have been rearranged to meet all new production
requirements. The model changed the schedule dramatically, including switching certain
jobs between lines, in order to develop a new schedule.

110

Line 1 Production
10

15

20

25

30

35

Day 1 Start
Job 13
Job 19
Job 12
Job 16
Day 1 End
Job 7

Job 18
Job 10
Day 2 End

Setup

Production

Figure 16 - Model C Line 1 Production Example 2

Line 2 Production
35
Day 1 Start
Job 15

Job 17
Job8
Job5
Day 1 End
Job 20
Job9
Job 11

Job 6
Day 2 End

Setup

s Production

Figure 17 - Model C Line 2 Production Example 2

The preliminary testing shows that the model is capable of producing feasible production
schedules that maintain all scheduling restrictions in a reasonable timeframe. The
example used here considered the production of 14 products on 2 lines over 2 days. The

Ill

model consisted of roughly 500 variables and 1000 constraints and solved in 3 seconds.
The largest size that the ice cream facility will likely need to solve consists of 50 products
on 3 lines over the course of 6 days. Assuming that all products can follow all other
products and be produced on all lines the problem would contain roughly 5000 variables
and constraints. Further testing will reveal the feasibility of optimizing a model of this
size but initial test results are encouraging. If the model is too large to optimize quickly
then metaheuristics may be a viable alternative. The simple structure of the model makes
it amenable to solving using TABU search or simulated annealing. Once an initial
solution has been found, it is simply a matter of changing the position of one or more
products to develop a new alternate solution.

7.4 Future Work


One issue that the suggested model does not address is that of mix batch sizes. Mix can
only be produced in batches of 5400L or 7500L but the batch can be used in multiple
finished goods. Model C will tend to schedule products with the same mix on the same
day because of the setup cost savings but it will not try to optimize the groupings by
"total mix used". Such an extension of the model would allow mix to partially drive the
production of finished goods each day. Currently, if the company has excess mix of a
premium product then they will use it in a lower quality product rather than waste it. The
result is a loss in profit margins because an expensive mix is sold as an economy product.
If premium products are appropriately scheduled and there is no excess mix at the end of
the day then the company can charge the proper amount for every litre of mix produced.

One possible approach to the mix-batch problem is to solve Model C ignoring mix
constraints and then calculate the mix requirements afterward. If the requirements are
satisfactory and do not deviate too far from the mix batch restriction then the schedule is
accepted. If the requirements are unsatisfactory then the situation can be analysed to
determine how other constraints might be added to the formulation to account for the mix
batch discrepancy.

112

Chapter 8
Conclusion

Effectively managing the production and inventory of any manufacturer requires a


careful examination of the specific nuances of their production and distribution processes.
The process is difficult because although a great deal of research has been conducted in
the area of production management systems and process modelling, none of the existing
work has been directly applied to ice cream manufacturing. No two industries are alike
and additional research and new ideas are necessary to discern which existing methods
are the most appropriate and how they can best be adapted to the situation at hand. A
practical approach to ice cream production management is presented in this thesis and
demonstrates how the system is both effective and meaningful for the manufacturer.

Hierarchical production planning is favourable because it has the ability to capture many
levels of production decision management and solve them semi-independently, while also
maintaining some form of connection and integration. The stages of the hierarchical
structure are designed to coincide with the company's management and decision making
levels. Interpreting and managing the model decisions at each stage is therefore simple
and intuitive for the decision makers. By treating the levels independently, they can be
modelled more accurately and solve faster than if they were modelled together.
Designing the lower level models to adhere to the constraints imposed by the higher level
models guarantees the feasibility of the system in both the short and long term. Because
of the uncertainties involved in production scheduling, solving each level of the
hierarchical structure on its' own rolling horizon, rather than modelling the entire system
at once, means that only meaningful results are computed at each stage. Detailed
schedules that will only be implemented in the first period are not calculated over the
course of a year, and long term aggregate decisions are not recalculated on a weekly
basis.

113

Model A, the highest level in the hierarchical structure, selects a labour schedule for next
12 months to minimize production and holding costs and adhere to all production and
storage constraints. By aggregating effective demand for 330 products into 26 groups, the
model solves in minutes and the results are suitably simplified at the high level. Allowing
the decision makers to predefine a selection of acceptable labour schemes enables the
model to select optimal production capacities within reason. The result is a labour
schedule that meets demand in every period and maintains a reasonable workload
throughout.

Updating Model A's data and running it on a rolling horizon every three months produces
a labour schedule and inventory levels with the flexibility to adapt the schedule to any
major changes in demand or production that may arise. The results are provided in such a
way that they can be easily imposed as a constraint on the production scheduling
decisions, ensuring proper linkages between the three levels. Testing the model and
comparing the results against the company's previous yearly labour schedules concluded
that the plan achieves reasonable inventory levels at a reduced cost.

Model A provides management with a snapshot of their company's current ability to


meet demand. As the results from the sample studies showed, the existing production
facility has more than enough capacity to meet existing demand levels. The model is
useful for determining the suitability of taking on new customers with increased demand
levels, the effects of adding additional production lines, or the advantage of increasing to
18-hour workdays. The model was used to examine the effects of increasing demand by
33% and confirm management suspicions that a fourth production line would need to be
added. Before the construction of this tool, the company had no way to model and define
the capacities of their facility. Although the model is not designed to compute the actual

costs of these scenarios for use by marketing, the results are nevertheless useful for
determining the feasibility of future expansions to the company.
Model B creates a production demand schedule to meet demand for upcoming weeks and
select run quantities that minimize holding and setup costs and maintain the labour

114

schedule prescribed by Model A. The model is designed to group products with shared
setup costs together to save on setup costs and times. Aggregating the demand and
production of hundreds of products into 103 families based on common base mixes and
packaging simplifies the mathematical model formulation and products with shared setup
costs are naturally produced together. Grouping the families independently of the type
groupings provides more flexibility and results in improved setup savings. The model is
run every week on a rolling horizon to adapt results to changes in the demand patterns.
Unlike Model A, the majority of the decision making for Model B happens outside of the
solver. By recognizing that producing for an integer number of periods is always less
expensive than bringing in inventory and producing in the same period, the scheduling
problem is significantly reduced in size. Grouping products with shared setup costs into
families and designing these families to run out of all products in the same period also
greatly restricts the possible solution scenarios. At this point, the solution software simply
selects the least expensive production path for the next three months that meets the
production constraints imposed by Model A.

Unlike many other disaggregation models in the literature, Model B is designed to


efficiently manage the coordination of hundreds of products simultaneously. Other
models restrict their formulations to a dozen products or only solve for one family at a
time because otherwise their computation times become unmanageable. Others employ
the use of metaheuristics that do not guarantee an optimal solution. Model B minimizes
the setup and holding costs for hundreds of products in a changing, capacitated
environment. Model B is also designed to ensure feasibility for three month's into the
future, barring any major unexpected changes in demand, unlike many of the more shortsighted models that can consider only a few periods. Lastly, Model B's run quantities all
correspond to an integer number of future periods without requiring computationally
intensive integer constraints on production.

The production coordinators use Model B to develop a production schedule for the
upcoming week quickly and accurately. If necessary, they can make changes to the

115
schedule to account for anomalies in production that are not captured by the model.
These changes are then picked up seamlessly by the plan the following week when model
data are updated. The results are clear and easy to understand and the implementation
requires minimal manual data manipulation, reducing the potential for human error.
Management can be confident in the accuracy and validity of the model solution.
The final level in the hierarchical structure is Model C, the daily production sequencing
model. The model has been formulated and tested with sample data. Further research is
required to determine whether a full implementation will require the use of metaheuristics
to solve. Although the structure is not complete without the final level, the higher levels
of the system do not require the final level to model their decisions effectively. In the
mean time, the production scheduler will continue to sequence the products each week
based on the production list provided by Model B. When Model C is completed, it will be
added to the model set by constraining it to the same production list.

The outline presented for model C is different from most research in that it focuses on
reducing the cost of a changeover. Generally, models are designed to reduce time or costs
resulting from timing. In the case of a production facility that is not producing at
maximum capacity, the objective might not be to optimize line utilization, but rather to
save on costs. In this case, the cost of lost ingredients drive the decision making process.
Some changeovers take more time but result in minimal mix loss and if the labour hours
are available then perhaps the longer changeover is favourable. Model C is capacitated by
time but designed to minimize setup costs. The model has performed well under initial
testing and the intention is to complete it at a later date and add it to the hierarchical
planning system.
With the complete hierarchical structure in place, the company can make faster and better
production decisions. The system acts as an important scheduling support system to help
management evaluate the costs of their production decisions and optimize multiple
parameters simultaneously. The results may be improved warehouse utilization, both in
terms of anticipatory inventory and cycle stock levels, reduced setup costs and product

116

loss, optimal use of capacity, and less stock outs. In addition, production plans extend
further into the future, which can lead to improved raw material procurement and the
identification of potential problems with production sequencing well in advance.
Decision makers can focus on anomalies and give special consideration to problem areas
without wasting time on the typical, predictable products that account for most of the
company's business.
The longevity of the hierarchical system depends on the stability of the production
process itself. From a data perspective, whether the company adds production lines,
acquires more warehouse space, or implements an 18-hour workday, the system is easily
set up to adapt to the changes. If the nature of the production process changes then that is
when the model will require reformulating. Luckily, the ice cream production process has
remained relatively unchanged in the last few decades and most improvements to
production focus on the individual stages rather than the process as a whole. The
expectation is that this hierarchical structure can provide the company with practical
production solutions for many years to come.

117

References
Allen, S., & Schuster, E. (1994). Practical Production Scheduling with Capacity
Constraints and Dynamic Demand: Family Planning and Disaggregation.
Production and Inventory Management Journal, 35 (4), 15-21.
Alon, N., Azar, Y., Woeginger, G., & Yadid, T. (1998). Approximation Schemes for
Scheduling on Parallel Machines. Journal of Scheduling, 1, 55-66.
Anthony, R. N. (1965). Planning and Control Systems: A Framework for
Cambridge, Mass.: Harvard University Press.

Analysis.

Axsater, S. (1986). Technical Notes on the Feasibility of Aggregate Production Plans.


Operations Research, 34 (5), 796-800.
Azizoglu, M., & Kirca, O. (1999). Scheduling Jobs on Unrelated Parallel Machines to
Minimize Regular Total Cost Functions. HE Transactions, 31, 153-159.
Bahl, H., Ritzman, L., & Gupta, J. (1987). Determining Lot Sizes and Resource
Requirements: A Review. Operations Reserach , 35 (3), 329-345.
Baker, K. R. (1977). An Experimental Study of the Effectiveness of Rolling Schedules in
Production Planning. Decision Sciences, 8 (1), 19-27.
Baker, K., & Scudder, G. (1990). Sequencing with Earliness and Tardiness Penalties: A
Review. Operations Research, 38 (1), 22-36.
Biggs, J. R. (1979). Heuristic Lot-Sizing and Sequencing Rules in a Multistage
Production-Inventory System. Decision Sciences, 10 (1), 96-115.
Birewar, D., & Grossmann, I. (1990). Simultaneous Production Planning and Scheduling
in Multiproduct Batch Plants. Industrial & Engineering Chemistry Research , 29,
570-580.
Bitran, G., & Tirupati, D. (1993). Hierarchical Production Planning. In S. Graves, A.
Rinnooy Kay, & P. Zipkin, Logistics of Production and Inventory (Vol. 4, pp. 523568). Amsterdam: Elsevier Science Publishers.
Bitran, G., Haas, E., & Hax, A. (1981). Hierarchical Production Planning: A Single Stage
System. Operations Research , 29 (4), 717-743.
Bowers, M. R., & Jarvis, J. P. (1992). A Hierarchical Production Planning and
Scheduling Model. Decision Sciences:, 23 (1), 144-159.
Brown, G., Keegan, J., Vigus, B., & Wood, K. (2001). The Kellogg Company Optimizes
Production, Inventory, and Distribution. INTERFACES, 31 (6), 1-15.

118

Brown, R. (1967). Decision Rules for Inventory Management. New York: Holt, Rineheart
and Winston.
Buxey, G. (2005). Aggregate Planning for Seasonal Demand: Reconciling Theory With
Practice. International Journal of Operations and Production Mangement, 25 (11),
1083-1100.
Chen, Z.-L., & Powell, W. (1999). Solving Parallel Machine Scheduling Problems by
Column Generation. INFORMS Journal on Computing ,11, 78-94.
Conway, R., Maxwell, W., & Miller, L. (1967). Theory of Scheduling. Reading: AddisonWesley.
Crama, Y., Pochet, Y., & Wera, Y. (2001). A Discussion of Production Planning
Approaches in the Process Industry. Center for Operations Research discussion
paper CORE 2001/42.
Dennis, D., & Meredith, J. (2000). An Analysis of Process Industry Production and
Inventory. Journal of Operations Management, 18, 683-699.
Dzielinski, B., & Gomory, R. (1965). Optimal Programming of Lot Size, Inventory and
Labour Allocations. Management Science, 11 (9), 874-890.
Ehrgott, M., & Ryan, D. (2003). The Method of Elastic Constraints for Multiobjective
Combinatorial Optimization and its Application in Airline Crew Scheduling. In T.
Tanaka, & M. Inuiguchi, Multi-Objective Programming and Goal Programming
(pp. 117-122). Berlin: Springer.
Eppen, G., & Martin, R. (1987). Solving Multi-Item Capacitated Lot-Sizing Problems
Using Variable Redefinition. Operations Research , 35 (6), 832-848.
Erschler, J., Fontan, G., & Merce, C. (1986). Consistency of the Disaggregation Process
in Hierarchical Planning. Operations Research, 34 (3), 464-469.
Fransoo, J., & Rutten, G. (1994). A Typology of Production Control Situations in Process
Industries. International Journal of Operations & Production Management , 14
(12), 47-57.
Goff, D. (1995). Ice Cream Manufacturing. Retrieved February 18, 2009, from Dairy
Science

and

Technology

Education,

University

of

Guelph,

Canada:

http://www.foodsci.uoguelph.ca/dairyedu/home.html
Goyal, S. (1974). Determination of Optimum Packaging Frequency of Items Jointly
Replenished. Management Science , 21 (4), 436-443.
Graves, S. (1982). Using Lagrangean Techniques to Solve Hierarchical Production
Planning Problems. Management Science , 28 (3), 260-275.

119

Grigoriev, A., Sviridenko, M., & Uetz, M. (2005). Unrealted Parallel Machine
Scheduling with Resource Dependent Processing Times. In M. J. Kaibel (Ed.),
Integer Programming and Combinatorial Optimization (pp. 182-195). Springer.
Harris, F. (1990). How Many Parts to Make at Once. Operations Research , 38 (6), 947950.
Hax, A., & Meal, H. (1975). Hierarchical Integration of Production Planning. TIMS
Studies in Management Science, I (Logistics).
Lasdon, L., & Terjung, R. (1971). An Efficient Algorithm for Multi-Item Scheduling.
Operations Research , 19 (4), 946-969.
Lee, Y., & Pinedo, M. (1997). Scheduling Jobs on Parallel Machines with Sequence
Dependent Setup Times. European Journal of Operational Research , 100, 464474.
Lenstra, J., Shmoys, D., & Tardos, E. (1990). Approximation Algorithms for Scheduling
Unrelated Parallel Machines. Mathematical Programming , 46, 259-271.
Li, K., & Yang, S.-L. (2009). Non-Identical Parallel-Machine Scheduling Research with
Minimizing Total Weighted Completion Times: Models, Relaxations and
Algorithms. Applied Mathematical Modelling , 33, 2145-2158.
Loos, P., & Allweyer, T. (1998). Appliation of Production Planning and Scheduling in
the Process Industries. Computers in Industry, 36, 199-208.
Malone, N., & Oostvogels, M. (2003). Production Scheduling at the Truro Ice Cream
Plant, Scotsburn Dairy Group, Project Report. Dept. of Industrial Engineering,
Dalhousie University.
Manne, A. (1958). Programming of Economic Lot Sizes. Management Science , 4 (2),
115-135.
McKay, K., Safayeni, F., & Buzacott, J. (1995). A Review of Hierarchical Production
Planning and its Applicability for Modern Manufacturing. Production Planning &
Control, 6 (5), 384-394.
Meyr, H. (2002). Simultaneous Lotsizing and Scheduling on Parallel Machines.
European

Journal of Operational

Research

, 139 (2), 277-292.

Pryor, J., Ostrovsky, K., & Linder, S. (2007). Analysis of Ice Cream Mix Loss - Final
Report. Halifax, Nova Scotia: Dalhousie University, Industrial Engineering
Department.

120

Silver, E. A., & Meal, H. (1973). A Heuristic Selecting Lot Size Requirements for the
Case of Deterministic Time Varying Demand Rate and Discrete Opportunities for
Replenishment. Production and Inventory Management Journal, 14, 64-74.
Silver, E. (2004). An Overview of Heuristic Solution Methods. Journal of the
Operational Research Society, 55, 936-956.
Silver, E., & Miltenburg, J. (1984). Two Modifications of the Silver-Meal Lost Sizing
Heuristic. INFOR ,22(1), 56-69.
Silver, E., Pyke, D., & Peterson, R. (1998). Inventory Management and Production
Planning and Scheduling (3rd ed.). New York: John Wiley & Sons, Inc.
Sivrikaya-Serifoglu, F., & Ulusoy, G. (1999). Parallel Machine Scheduling with Earliness
and Tardiness Penalties. Computers & Operations Research, 26, 773-787.
Smith-Daniels, V., & Ritzman, L. (1988). A Model for Lot Sizing and Sequencing in
Process Industries. International Journal of Production Research, 26 (4), 647-674.
Vielma, J. P., Murray, A. T., Ryan, D. M., & Weintraub, A. (2007). Improving
Computational Capabilities for Addressing Volume Constraints in Forest Harvest
Scheduling Problems. European Journal of Operational Research , 176, 12461264.
Wager, H. M., & Whitin, T. (1958). Dynamic Version of the Economic Lot Size Model.
Management Science, 5(1), 89-96.
Williams, H. (2006). The Formulation and Solution of Discrete Optimisation Models. In
G. Appa, L. Pitsoulis, & H. Williams, Handbook on Modelling for Discrete
Optimization (p. 13). Springer.

121

Appendices

Appendix A Model A MPL Code


TITLE "Aggregate Planning Model";
INDEX
Product
:= DATABASE(model_groupings, Product=group_num);
Warehouse
:= DATABASE(model_warehouses, Warehouse=warehouse);
Period
:= DATABASE(modelj>eriods, Period=period);
Line
:= DATABASE(model_lines, Line=line);
ProductByLine[Product, Line]
:= DATABASE(model_group_to_line,
Product=group_num, Line=line);
ProductByWarehouse[Product, Warehouse]
:=
DATABASE(model_product_to_warehouse, Product=group_num, Warehouse=warehouse);
{Labour data is still stored in Excel due to the complexity of its calculations.}
Labour
:= EXCELRANGE("SB APM.xls", "LabourlLabour");
LabourByPeriod[Period, Labour]
:= EXCELRANGEfSB APM.xls",
"PeriodslLabourByPeriod");
VARIABLES
Production[Product, Line IN ProductByLine, PeriodotOO]
-> Prod
EXPORT TO EXCELSPARSEfSB APM.xls","Results!Production");
EndlnventoryfProduct, Warehouse IN ProductByWarehouse, Period]
-> Endl
EXPORT TO EXCELSPARSEfSB APM.xls","Results!Endlnventory");
LabourScheme[Period, Labour IN LabourByPeriod]
-> Labr
EXPORT TO EXCELSPARSEfSB APM.xls","Results!LabourScheme");
ProductToWarehouse[Product, Warehouse, PeriodotOO]
-> ToWH
EXPORT TO EXCELSPARSEfSB APM.xls","Results!ProductTo");
ProductFromWarehouse[Product, Warehouse, PeriodotOO]
-> FrWH
EXPORT TO EXCELSPARSEfSB APM.xls","Results!ProductFrom");
DATA
WHCapacityfWarehouse]
:= DATABASE(model_warehouses,
Warehouse=warehouse, WHCapacity=capacity);
ShipTo[PeriodotOO, Product, Warehouse]
:= DATABASE(model_shipto,
Period=period, Warehouse=warehouse, Product=group_num, ShipTo=shiptocost);
ShipFrom[PeriodotOO, Product, Warehouse]
:= DATABASE(model_shipfrom,
Period=period, Warehouse=warehouse, Product=group_num, ShipFrom=shipfromcost);
LineUtilization[Product,Line]
:= DATABASE(model_line_utilization,
Product=group_num, Line=line, LineUtilization=amount);
ProductionCost[PeriodotOO, Product, Line]
:= DATABASE(model_production_cost,
Period=period, Product=group_num, Line=line, ProductionCost=production_cost);
ProductDemand[Product, Period]
:= DATABASE(modeLdata,
Product=group_num, Period=period, ProductDemand=pdemand);
FreezerUtilization[Product]
:= DATABASE(model_freezer_util,
Product=group_num, FreezerUtilization=freezer_utilization);
WHUtilization[Product]
.:= DATABASE(modeLwarehouseutil,
Product=group_num, WHUtilization=wh_utilization);

123
HoldingCost[PeriodotOO, Product, Warehouse]
:= DATABASE(model_holding,
Period=period, Product=group_num, Warehouse=warehouse, HoldingCost=holdingcost);
LabourCost[Period=t01..t12, Labour]
:= EXCELRANGE("SB
APM.xis","Periods!LabourCost");
FreezerThroughput[Period=t01 ..t12, Labour]
:= EXCELRANGE("SB
APM.xls","Labour!FreezerThroughput");
LineThroughput[Period=t01..t12, Labour, Line]
:= EXCELRANGEfSB
APM.xls","Labour!LineThroughput");
MACROS
TotalProductionCost
= SUM(Line, Product IN ProductByLine, PeriodotOO:
ProductionCost * Production)
EXPORT TO EXCELSPARSE("SB APM.xls","Results!ProdCost");
TotalHoldingCost
= SUM( Product, Warehouse IN ProductByWarehouse,
PeriodotOO: HoldingCost * Endlnventory)
EXPORT TO EXCELSPARSE("SB APM.xls","Results!HoldCost");
TotalShippingCost
= SUM(Product, Warehouse IN ProductByWarehouse,
PeriodotOO: ShipTo * ProductToWarehouse + ShipFrom * ProductFromWarehouse)
EXPORT TO EXCELSPARSE("SB APM.xls","Results!ShipCost");
TotalLabourCost
= SUM(Period, Labour IN LabourByPeriod: LabourScheme *
LabourCost)
EXPORT TO EXCELSPARSE("SB APM.xls","Results!LabCost");
TotalCost
= TotalProductionCost + TotalHoldingCost + TotalShippingCost
+ TotalLabourCost
EXPORT TO EXCELSPARSE("SB APM.xls","Results!TtlCost");
MODEL

MIN Costs = TotalCost;

SUBJECT TO
lnventoryBalance[Product, Warehouse, PeriodotOO]
-> IBal:
Endlnventory[Period-1] + ProductToWarehouse - ProductFromWarehouse =
Endlnventory;
Startinglnventory[Product, Warehouse, Period=t00]
Endlnventory = 0;

-> Slnv:

MeetDemand[Product, PeriodotOO]
-> MDem:
SUM(Warehouse: ProductFromWarehouse - ProductToWarehouse) + SUM(Line:
Production) = ProductDemand;
LineCapacityMax[Line, PeriodotOO]
-> LCap:
SUM(Product: LineUtilization * Production) <= SUM(Labour: LineThroughput *
LabourScheme);
LineCapacityMin[Line, PeriodotOO]
-> LCap:
SUM(Product: LineUtilization * Production) >= SUM(Labour: LineThroughput *
LabourScheme*.8);
FreezerCapacity[PeriodotOO]
-> FCap:
SUM(Product, Line: FreezerUtilization * Production) <= SUM(Labour:
FreezerThroughput * LabourScheme);

LimitOvertime[Period<>tOO]
SUM(Labour: LabourScheme) = 1;

-> OLim:

WHMaxCapacity[Period, Warehouse]
-> WCap:
SUM(Product: Endlnventory * WHUtilization) <= WHCapacity;
BOUNDS
Production
>= 0;
Endlnventory
>= 0;
ProductToWarehouse >= 0;
ProductFromWarehouse
BINARY
LabourScheme;
END

>= 0;

Appendix B Model B MPL Code


TITLE

"Model B v5.0"

INDEX
Family
= EXCELRANGEfModel B v4.0.xls", "Family InformationlFam");
Period
= EXCELRANGE("Model B v4.fj.xls", "Product DemandlPer");
= Period;
Periodl [Period]
= Period;
Period2[Period]
Line
:= EXCELRANGEfModel B v4.0.xls", "Production ConstraintslLine");
Line1[Line]
= Line;
Line2[Line]
= Line;
PLine[Family, Line]
EXCELRANGEfModel B v4.0.xls", "Family
InformationlPByL");
VARIABLES
Produce[Family, Periodl, Period2]
->Prod
WHERE Periodl <=Period2
EXPORT TO EXCELSPARSEfResults.xls",
SlackMax[Period, Linel, Line2]
->MinS
WHERE Line1oLine2
EXPORT TO EXCELSPARSEfResults.xls",
MaxPenalty[Period, Line]
->MaxP
EXPORT TO EXCELSPARSEfResults.xls",
MinPenalty[Line]
->MinP
EXPORT TO EXCELSPARSEfResults.xls",

"ResultslProduce");
"ResultslSlack");
"ResultslMaxPenalty");
"ResultslMinPenalty");

DATA
Utilization[Family, Periodl, Period2]
"Create MatrixIFamUtil");
Cost[Family, Periodl, Period2]
"Create MatrixiCost");
MaxCapacity[Period, Line]
"Production ConstraintslMaxCapacity");
MinCapacity[Period, Line]
"Production ConstraintsiMinCapacity");

:= EXCELRANGEfModel B v4.rj.xls",
:= EXCELRANGEfModel B v4.0.xls",
:= EXCELRANGEfModel B v4.0.xls",
:= EXCELRANGEfModel B v4.0.xls",

MACROS
TotalProdCost
= SUM(Family, Periodl, Period2: Produce * Cost)
EXPORT TO EXCELSPARSEfResults.xls", "ResultslTtlCost");
TotalPenaltyCost
= SUM(Period, Line: 10000*MaxPenalty) + SUM(Line:
10000*MinPenalty)
EXPORT TO EXCELSPARSEfResults.xls", "ResultslPenaltyCost");
MODEL

MINTotalProdCost+TotalPenaltyCost;

SUBJECT TO
Coverage[Family, Period]:
SUM(Period1 <=Period, Period2>=Period: Produce) = 1;
MxCapacityfLine, Period]:
SUM(Family IN PLine, Period2>=Period: Utilization * Produce) <= MaxCapacity +
MaxPenalty + SUM(Line1: SlackMax) - SUM(Line2: SlackMax);

MnCapacityfLine, Period=01]:
SUM(Family IN PLine, Period2>=Period: Utilization * Produce) >= MinCapacity MinPenalty + SUM(Line1: SlackMax) - SUM(Line2: SlackMax);
SlackTransfer[Period,Line1,Line2]
WHERE Line2 = 1:
SlackMax = 0;
BINARY
Produce;
END

127

Appendix C Model C MPL Code


TITLE "Daily Scheduling Model C";
INDEX
= (1-20);
Product
= (1,2,3,4,5,6);
Dummy[Product]
= Product;
Productl [Product]
= Product;
Product2[Product]
=(1,2);
Line
EXCELRANGE("Test Data.xls", "ProdtoLine");
ProductByLine[Product, Line]
ProductPermissions[Product1, Product2]
:= EXCELRANGE("Test Data.xls",
"Permissions");
VARIABLES
ProductToLine[Product, Line IN ProductByLine]
-> Y;
p1 p2[Product1, Product2 IN ProductPermissions, Line] -> X
EXPORT TO EXCELSPARSE("Test Data.xls", "results!p1p2");
StartTimeP[Product]
-> T;
DATA
SetupTimes[Product1, Product2]
= EXCELRANGE("Test Data.xls", "setuptimes");
Cost[Product1, Product2]
= EXCELRANGEfTest Data.xls", "cost");
ProductionTime[Product, Line]
= EXCELSPARSEf'Test Data.xls", "prodtime");
StartTimeD[Dummy]
:= EXCELRANGE("Test Data.xls", "dummystart");
MACROS
TotalCost = SUM(Product1, Product2, Line: Cost * p1p2);
MODEL

Min TotalCost

SUBJECT TO
ProductOnOneLinefProduct]
SUM(Line: ProductToLine) = 1;
JobRestrictions[Product1, Line]
SUM(Product2: p1p2) <= ProductToLine;

->p1l:
-> i2j:

iandjonl[Product1, Product2, Line]


-> ijl:
p1p2 <= 0.5*(ProductToLine[Product1] + ProductToLine[Product2]);
itojstarttime[Product1, Product2 in ProductPermissions]
-> ijs:
32*(1-sum(Line:p1p2)) + StartTimeP[Product2] >= StartTimeP[Product1] +
SUM(Line:ProductionTime[Product1]*p1 p2) + SUM(Line:SetupTimes*p1 p2);
Dummies[Product IN Dummy]:
StartTimeP = StartTimeD;
Somme[Product2]:
SUM(Line, Productl in ProductPermissions: p1p2)=1;
BINARY
p1p2;
ProductToLine;

You might also like