AN ABSTRACT OF THE THESIS OF Einar Thor Bjarnason

advertisement
AN ABSTRACT OF THE THESIS OF
Einar Thor Bjarnason for the degree of Master of Science in Industrial and
Manufacturing Engineering presented on June 26, 1992.
Title : A Decision Support System for Integrating Fishing and Fish Processing
Signature redacted for privacy.
Abstract approved:
Sabah Randhawa
Production planning in fish processing is heavily dependent on the raw material
Because of the uncertainties associated with the quantity of catch and its
supply.
composition,
planning for production is a difficult task. Until recently the fish
processing plants in Iceland also had to accept the entire loads of fishing fleet vessels
whenever the vessels had opportunity to land their catch.
This uncertainty and
randomness in the raw material supply requires frequent decisions on production plans
for product mix, assignment of labour to machines and facilities, and the raw material
inventory to be carried from one period to the next.
This research develops a decision support system (dss) for integrating fishing and
fish processing. The two primary components of dss are a simulation model and a linear
programming model. The simulation model analyzes the trawler operations, including
generating the catch, controlling the length of a fishing trip, and the order in which
trawlers land their catch so as to provide a steady raw material supply. The linear
programming model uses the output from the simulation model to determine labour
requirements, work-in-process inventory levels and amount of products produced so as
to optimize production costs. The research shows that heuristic and deterministic models
can be integrated to form a decision support system that can aid in effective decision
making.
A Decision Support System for Integrating
Fishing and Fish Processing
by
Einar Thor Bjarnason
A THESIS
submitted to
Oregon State University
in partial fulfillment of
the requirements for the degree of
Master of Science
Completed June 26, 1992
Commencement June 1993
APPROVED:
Signature redacted for privacy.
Professor of Industrial and Manufacturing Engineering in charge of Major
Signature redacted for privacy.
Head of department of Industrial and Manufacturing Engineering
Signature redacted for privacy.
6
Dean of Graduate
ool
KS
Date Thesis is presented
Typed by Einar Thor Bjamason for
June 26. 1992
Einar Thor Bjamason
ACKNOWLEDGMENT
I would like to express my appreciation to my advisor, Sabah Randhawa, who has
been a continuous source of support and encouragement during my study at the Oregon
State University, especially during the work of this research.
I would also like to thank Pall Jensson and Ingolfur Arnarson for their help, ideas
and enriching discussion during the pace of the research.
I thank Eldon Olsen for helpful comments on the thesis, as well as my friends,
and fellow graduate students for their support and encouragement.
Finally and but not least, my wife Munn Lira receives my sincere thanks for
motivation and encouragement which helped bringing this milestone to reality. Also to my
son Tryggvi Por for being there.
TABLE OF CONTENTS
Chapter 1
INTRODUCTION
1
1.1
Introduction
1
1.2
Research objectives
3
1.3
Organization of thesis
4
Chapter 2
2.1
BACKGROUND
The fishing industry in Iceland
5
5
2.1.1
History
5
2.1.2
7
2.1.3
Quota regulations
Fishing grounds
2.1.4
Fishing operation
8
Fleet operation
8
Plant operation
11
2.2
Literature review
7
12
2.2.1
General
12
2.2.2
12
2.2.3
Trawler operation
Plant operation
2.2.4
Integrated fishing and fish processing
15
Chapter 3
METHODOLOGY
14
16
3.1
Approach
16
3.2
Simulation model
Model description
17
3.2.1
17
System initialization
18
Catch Generator
18
Catch Generator
18
Catch combination
22
Trawler operation
LandPermit
Go_Land
23
Time value
Quality
Plant operation
24
3.3.1
3.3.2
3.4
Chapter 4
4.1
4.1.1
4.1.2
4.2
4.2.1
4.2.2
4.3
23
26
27
Inventory control
27
Production rate
28
Plant time value
Report generation
3.3
22
Linear programming model for product mix
General
Mathematical formulation
28
29
30
30
30
Indices
30
Decision variables
31
Coefficients
31
The model
32
Implementation
RESULTS
35
36
Model validation
Data input for simulation model
Data input for linear programming model
36
Results
40
40
Initial decision rule (Rule A)
Modification of decision rule
Comparison of decision rules
36
37
43
45
4.3.1
Raw material
45
4.3.2
Product mix
50
4.3.3
Profit
52
4.3.4
Inventory
53
4.4
Evaluation of results
55
Chapter 5
CONCLUSIONS
58
REFERENCES
61
APPENDIX A
63
Appendix A-1: Flowcharts
63
Appendix A-2: Program listing
65
Appendix A-3: Example output reports
92
APPENDIX B
Appendix B-1: The MPL program for one run of Rule C
APPENDIX C
Appendix C-1: System output reports
96
96
98
98
LIST OF FIGURES
Figure
Page
3.1
Schematic overview of approach
17
3.2
Flow of simulation model and its primary components
19
3.3
Seasonal fluctuations in catch rate
21
3.4
Relative quality of fresh fish as function of time
27
4.1
Comparison of expected catch rate and workforce level
38
4.2a
Landed raw material in spring by fish species
46
4.2h
Landed raw material in summer by fish species
46
4.3a
Average weekly landing and inventory in spring for Rule A
48
4.3b
Average weekly landing and inventory in spring for Rule B
48
4.3c
Average weekly landing and inventory in spring for Rule C
48
4.4a
Average weekly landing and inventory in summer for Rule A
49
4.4b
Average weekly landing and inventory in summer for Rule B
49
4.4c
Average weekly landing and inventory in summer for Rule C
49
4.5a
Product mix in spring for Rule A
50
4.5b
Product mix in spring for Rule B
50
4.5c
Product mix in spring for Rule C
50
4.6a
Product mix in summer for Rule A
51
4.6b
Product mix in summer for Rule B
51
4.6c
Product mix in summer for Rule C
51
4.7
Comparison of different profit measures during spring
for Rules A, B, and C.
4.8
52
Comparison of different profit measures during summer
for Rules A, B, and C.
53
4.9
Absolute deviation of inventory during spring for
Rules A, B, and C
4.10
54
Absolute deviation of inventory during summer for
Rules A, B, and C
55
LIST OF TABLES
Page
Table
4.1
Capacity and quota of trawlers
4.2
Cost of raw material, sales price of product, raw material,
36
and labour requirements
37
4.3
Work pattern during the week and hourly wages
39
4.4
Inventory holding cost of raw material during
weekdays and weekends
39
4.5
Example of the summarized LP model output (Rule C)
41
4.6
Results from Rule A showing raw material, products,
labour and revenues
4.7
42
Deviation in inventory between simualtion model
and LP model for Rule A
43
4.8
Definition of decision rules A, B, and C
44
4.9
Summarized results showing raw material, products,
labour hours, and revenues for Rules A, B, and C
4.10
44
Deviation in inventory between simulation model
and LP model for Rules A, B, and C
45
LIST OF APPENDICES TABLES
Table
Page
C.1
Summarized LP output for Rule A in spring, iteration 1
C.2
Summarized LP output for Rule A in summer, iteration 1
102
C.3
Summarized LP output for Rule C in spring, iteration 2
107
C.4
Summarized LP output for Rule C in summer, iteration 2
111
98
A Decision Support System for Integrating Fishing and Fish Processing
Chapter 1
INTRODUCTION
1.1
Introduction
Most of the cities and towns in Iceland lie at the coast all around the island. It is
therefore no wonder that the prime industry in Iceland is fisheries, i.e. fishing and fish
processing. This industry provides more than 70% of the national income (export value).
The tradition of going out on sea is strong and through the ages the seamen have brought
all the fish they were lucky enough to catch, both because of weather and catch
probability. The processing plants had therefore to serve the vessels by accepting their
loads whenever the vessels had opportunity to land it. Production planning was difficult
and new plans had to be made every morning when decisions had to be taken on product
mix, assignment of labour to machines and facilities, labour hours and if and then how
much of the raw material should be stored for the next working day. Now that the vessels
have become bigger and more efficient in catching, and telecommunication between
vessels and plants have improved, their owners and the processing plants see the
economical importance of coordinated scheduling of vessels landing and plant operations.
Plant operations consist mainly of processing different fish species into various
products. The most common process is filleting, i.e. the fish is filleted, then trimmed
according to buyers' requirements, packed, and then quick frozen individually.
A fishing trip of a trawler takes typically 5 to 14 days, depending upon catch rate,
weather forecast and fish species caught. The duration of the trip also depends upon
2
whether the trawler is sailing to an international auction market. There is though a
maximum number of days the trawler stays on sea due to the aging of the raw material
which is stored in boxes covered with ice flakes. After the fish has been stored in ice for
a certain time the quality of the raw material decreases and the processing yield in the
plant goes down and less valuable products are produced. The duration of a fishing trip
involves the sailing to the fishing grounds, sailing between fishing grounds if the captain
expects better catch elsewhere, and then the sailing to the home base.
There are several factors that make the coordinated scheduling of the fishing
operation and the plant operation difficult. Some of these are:
The quantity and composition of the raw material because of the uncertain and
unpredictable catch rate.
Weather can be so bad that catch might be difficult or even impossible. This
especially applies as the trawler approaches its due date on sea.
Workforce considerations and compensation both for the workforce in the
processing plants and the seamen on the trawlers.
Allocation of resources, both workforce and raw material.
Special product orders from customers that have to be satisfied. If the trawler has
the raw material onboard that is needed for the special order or is catching it, the
plant may have to call the trawler in earlier than originally scheduled.
Limitations on working days, such as weekends and holidays, need to be
considered since the plants do not operate during this time. Thus, raw material
on-hand will have lower quality when the next processing opportunity comes.
Engine, machine or equipment breakdown on the trawler or in a processing plant.
3
1.2
Research objectives
The only study carried out so far uses a simple linear programming (LP) model to
coordinate the fishing operation and the production planning at the processing plants
(Jensson, 1990). This model has certain limitation:
-it assumes the expected catch to be a fixed value; also are revenues dependent on
the amount of raw material and not on the product produced.
-it does not consider the cost of lost opportunity if a trawler is called to land earlier;
the fact that the value and quality of the raw material decreases as time passes.
The objective of this research project is to develop a decision support system to
help coordinate the operation of fishing and the processing so the trawlers of the company
can be scheduled accordingly. This problem is approached by building on previous
studies and by incorporating some of the shortcomings of the models. These are the two
basic components of the model developed in this research:
A "catch generator" that estimates the expected catch of a trawler by including
some of the uncertainty associated with catching the fish.
A production mix model that uses the output from the catch generator to
determine labour requirements, work-in-process inventory levels and amount of
products produced so as to optimize production costs.
The catch generator is a simulation model whereas the optimization module uses
linear programming. The results from these models are used to develop and refine
heuristics for scheduling of trawlers.
4
1.3
Organization of thesis
The organization of this thesis is as follows:
Chapter 2 provides an introduction to the fishing and fish processing problem,
and surveys the published literature in this area.
Chapter 3 describes the decision support system developed in this research.
Chapter 4 provides the implementation details, and presents an application of the
methodology to operation of a major fish processing company in Iceland.
Chapter 5 summarizes this research work.
5
Chapter 2
BACKGROUND
2.1
The fishing industry in Iceland
2.1.1 History
Iceland was first settled by Irish paps in the 8th century. A hundred years later the
Vikings settled there with their horses, cattle and sheep. The island soon became
inhabited, mainly at the coast and in adjacent valleys. The settlers soon found out about
the fishing grounds just outside the coast and gradually seafood became an important food
source along with agricultural products. The vast majority of the inhabitants who were
farmers, flocked to the coast for a couple of months when good weather and good catch
could be expected. Soon this became seasonal and since some places suited better than
others with some kind of natural harbour, villages and towns slowly developed. These
early settlers fought the rough sea and all kind of weather on small open boats just to be
able to feed their families.
These dangerous fishing trips demanded great leadership among the seamen. The
crew looked to a seaman that was clever and wise enough to find the best fishing ground,
who could find the best and safest way to land the boat and also who could be trusted and
obeyed when necessary. As time passed, the role of the captain became more structured
and successful captains were also given respect and authority ashore.
At the turn of this century the first fish processing plants were founded in Iceland.
The processing in these facilities was based on the fish brought ashore by fishing boats.
However, operation of fishing boats was associated with catch uncertainty due to weather
and captains' decisions on when to bring boats ashore. As fishing equipment and
6
technology improved and the plants became modernized, weather became less of a factor,
and it became harder for plant operation to accept this unstable and unpredictable supply of
raw material that was mostly caused by the strong minded captains that landed the catch
when it fitted them. Not only did this varying raw material supply affect the production
rate but it also resulted in substantial variations in workforce level since fish processing is
very labour intensive. This resulted in unstable employment levels and for small
communities, fluctuations like this had major economic consequences.
Generally the plants were not able to do anything about this pattern until quota
regulations were implemented for the fishing fleets. Although the processing plants
generally owned the fishing vessel, only a few plants were able to negotiate with the
captains on fish supplies, and that only on a short-term basis. The quota regulation set a
one time total quota for fishing vessel. The Icelandic Government and the Marine Research
Institute only governed the total catch which affected each individual vessel. The regulation
was first introduced in 1984 but did not have considerable impact until 1987 when the total
quota decreased as a result of marine research. In 1989 the quota regulation was enforced
with full power when among other things, restrictive regulations on transferable quotas
were implied. These actions as well as reduced catch, forced the plants to schedule their
resources not only to control their production and to optimize their profit, but also to
survive increasing competition and economic recession following the quota decrease. The
result was increased cooperation between the fishing operations and fish processing at onshore plants.
Today most of the trawlers in Iceland are still owned by processing plants or the
trawler owners own a processing plant. The number of individual trawler owners has been
increasing, though they are then contracted to some processing plant or sell on domestic or
international fresh fish auction markets.
7
2.1.2 Quota regulations
Because of the importance of fisheries for Iceland, the protection of this natural
resource has been a great issue. In order to gain more control over this valuable resource
and because of diminishing catch, Iceland became the first nation in the world to declare a
200 mile jurisdiction around the island in 1976. Although foreign fishing vessels were not
allowed to catch within this jurisdiction, the yearly catch kept diminishing. In the early
1980's, the Icelandic Government introduced quota regulation on certain fish species. The
quota was controlled by the total yearly catch where each fishing vessel had its share based
on its catch history over the past couple of years.
Through the decade the quota regulation has been developing. Today, each fishing
vessel has its individual quota which is transferable between vessels to some extent.
Therefore, the total quota a fish processing plant has is contributed by the fishing vessel it
owns or controls.
2.1.3 Fishing grounds
Fishing is a very stochastic process. It is impossible for the captain to tell at the
beginning of a fishing trip the amount he will catch during the fishing trip or the
composition of the catch. The captains experience seasonal difference in catch rates,
difference between fishing grounds and also there is high variation in catch rates between
years. Some of these variations can be explained by different conditions in the ocean, for
example, water temperature and food conditions for the fish, but other factors may remain
unexplained. Not only are the fishing fleets affected by variation in fishing but the fish
processing plants also have to schedule their production. The fish itself undergoes
seasonal biological changes that affect the processing yield and the type of products that can
be produced.
8
2.1.4 Fishing operation
A typical company in Iceland involved in the fishing industry generally controls
several operations. First and foremost they operate a fish processing plant where the fish is
processed. Typically in a processing plant, there are several different processing centers,
as for example, conventional processing that consists of filleting and freezing, sailfish
processing, dried fish processing and fishmeal plant. This is where different raw material
is processed. Most plants also operate their own boats and trawlers. If this is not the case,
the plants try to contract private owned boats or trawlers to supply them with raw material
or they buy from auction markets.
The average company in Iceland operates several boats and trawlers to meet their
raw material requirements. Because of the quota assigned to each fishing vessel, a
company has limited raw material resources, but in some cases a company can increase
their raw material supply through purchase at auction markets.
Fleet operation
A fishing trip of a trawler takes 5 to 14 days, depending upon catch rate, weather
forecast and fish species caught. The duration of the trip also depends upon whether the
trawler is sailing to an international auction market after its trip or not. However, there is
an upper limit on the number of days a trawler can stay on sea due to the aging of the raw
material. After the fish has been stored in ice for a certain time the quality of the raw
material decreases and the processing yield in the plant goes down. Also the plant can
expect lower value for the product processed from lower quality raw material. The
duration of a trawler trip involves sailing from the home base to the fishing grounds,
sailing between fishing grounds if the captain expects better catch elsewhere, and then the
sailing back to the home base.
9
The fleet manager is responsible for the coordination of the fishing fleet and the
plant operations. At the beginning of each season, the fleet manager typically allocates the
quota available to the company to each of the trawlers and schedules their fishing trips,
sailing to international auction market, and maintenance and other activities that affect the
operation of the trawler. The schedule is further disaggregated by estimating the catch in
each trip based on historical data (most often last year's) and the manager's experience.
The main task in scheduling, and perhaps the most difficult one, is daily operation and
coordination. Some of the most critical factors that affect the schedule and the fleet
manager's decisions are:
The quantity and composition of the raw material. Here the expected catch rate is
the most uncertain and unpredictable factor. During a trip the catch rate is not
constant. It can vary from 0 MT (metric tons) to 60 MT during a 24-hour period.
The captain is able to predict the catch in the next haul with some degree of certainty
based on previous hauls, fish finder equipment and current catch figures from
surrounding trawlers. If there is a high possibility that the next hauls will be large,
it is tempting to let the trawler stay for another 12 hours or a day.
In the winter time the weather can effect the decision since there is no need for the
trawler to stay out on sea if the forecast is so bad that catching might be difficult or
even impossible. This especially applies to trawlers as they approach their due date
on the sea.
The seamen get their share of the catch revenues as wages. Calling the trawler
ashore sooner or later than scheduled can cause demoralization of the crew if the
reasons are not well justified. Keeping a trawler longer on the sea will eventually
disappoint some crew members as they may be physically tired and their plans with
their families may be disrupted. If the trip is shortened, crew members may also
get frustrated, especially if the catch has been low.
10
A balance between trawlers has to be kept both in terms of quota as well as trip
length. For example, having one trawler to shorten its trips more often than the
others, or one trawler having more potential to get higher revenues because of
more valuable quota or more frequent sailing to auction markets need to be avoided.
Sailing to an international auction market with catch has to be scheduled five to
seven months ahead of time because permission from the appropriate authorities has
to be obtained for the trip. Special arrangements like fishing for longer duration
and trying to catch fish species that may give high revenues on market are made.
A decision on allocating catch between processing plant and auction markets has to
be made. Sometimes it may be preferable to sell excess raw material rather than
risking quality problems.
Weekends and holidays need to be considered since the plants do not operate during
these days,
and raw material on-hand during this time results in lower quality
product. Therefore an attempt is made to minimize raw material on Friday
evenings. Smooth or steady fish supply during the week therefore favours the
plant. This also implies that there is no sense to call trawlers ashore during or just
before the weekend.
The plant may get an order from a customer for a special product. If the trawler has
the raw material onboard that is needed for the product or is catching it, the plant
might want to call the trawler in sooner than scheduled.
Engine, machine, or equipment breakdowns on the trawler or in a processing plant
may affect fishing and production schedules.
Because of the complexity and stochastic nature of these factors, long term plans
have to be often revised. In fact, even the weekly plan may have to be revised several
11
times, as events occur during the week. An ideal schedule should be based on the
following two factors:
A trawler comes in for landing, either because full load has been caught or the
freshness/quality of the fish caught is endangered.
The processing plant gets the preferred fish species at the right time. Too late a
supply results in idleness of the plant while too early landings can mean reduced
quality of final products or less revenues because a "faster" product mix has to be
selected.
Plant operation
The processing plant typically is an assembly line operation with conveyor belts
carrying the fish between processing stages. Incoming raw material is kept in cold storage.
Before being stored, the raw material is inspected and classified by species, size and age
(time since caught). Processing involves heading, filleting, trimming and packaging.
Finally the packed product is frozen in quick-freezers and moved into freezer storage.
The production manager typically makes decisions on how to utilize the incoming
raw material and to schedule the production. Decisions include: quantity to produce,
overtime to work each day and the quantity of raw material to store for the following days.
These decisions may be complicated due to the varying number of workers available,
feedback from the market in form of price changes, and of production restrictions on
certain products. The biggest challenge is the incoming raw material, i.e., quantity,
species and quality. In all cases the production manager tries to maximize the production
profitability, looking for the most valuable products that can be produced within the
constraints set by machines, labour and quantity of raw material.
12
Literature review
2.2.1 General
The fishing industry is often divided into three components: fish stocks and
harvesting, fish processing, and fish marketing. The first component typically deals with
population models and harvesting policies but also covers fishing fleet operation including
vessel mix and vessel scheduling. Fish processing covers range of operations that converts
fish as raw material into product bought by wholesalers or consumers. Marketing deals
with the many diverse markets and the different products that are available in fisheries.
Since the focus of this research is single vessel operations and fish processing, the
background discussion concentrates on these areas.
2.2.2 Trawler operation
There is a large amount of literature available in this area, particular for fish stocks
and harvesting; much less is available on vessel operations and fish processing.
Sigvaldason et al. (1969) describe a simulation model of a wet (fresh) fish trawler,
with the main purpose of studying the supply of raw material to freezing plants in Iceland,
and comparing vessels of different sizes. Digernes (1982) attempted to evaluate fishing
vessel design and its effect on operation and efficiency. The author introduced the concept
of "time value" when captains are taking decisions about cruising speed and choosing
fishing grounds and the effect of these decisions on fuel consumption and performance of
the vessel. Arnarson (1984) studied the feasibility of operating a trawler versus operating a
longliner.
Arnarson (1984) carried Digernes's (1982) concept of time value further by
adding to it the effect of different designs of the trawler body and propellers. The study
used catch figures from several years for each vessel type and for trawlers; both daily and
13
hourly catch rates as well as the seasonal fluctuation in catch rate were analyzed.
Arnarson's (1986) modeling of a decision support system for trawler skippers included the
time value concept.
Gunn et al. (1991) studied tactical planning for a Canadian company with integrated
fishing and fish processing. The characteristic of the model included a fleet of trawlers,
number of processing plants, quasi-property rights of the company to fish in the sea and
market requirements. The objective was to coordinate harvesting and marketing strategies
that will allow the company to maximize potential revenues. A linear programming (LP)
model was formulated to accomplish this objective. The trawler operations were based on
historical monthly catch figures for known fishing grounds.
Given the size and
characteristic parameters of the trawler fleet, the trawlers were assigned to fishing grounds
during specified time periods to land their catch at certain processing plant. The LP output
gave the products and their respective volumes that should be marketed, and the quantity
of fish caught in each period to satisfy market requirements.
Andrason (1990) and Teitsson (1990) developed models for production
management and processing onboard factory trawlers in Iceland. Arnarson and Jensson
(1991) used these models as prototypes to develop a simulation model that analyzed the
operation of a factory trawler. The simulation model had a LP model embedded in it to
make decisions on product mix for each haul's catch. The objective was to test the model as
a decision support system for the captain of the trawler that makes decisions on the product
mix, whether to move to another fishing ground or to go ashore and land the catch, and
analyze the impact of different fisheries management schemes on individual firms. The
simulation model used the log-normal distribution to generate catch. The log-normal
distribution and its parameters used in the model were based on results by Arnarson (1984)
and Teitsson (1990). Arnarson and Jensson (1991) expanded the definition of the time
value as developed earlier by Digernes (1982), including the effect of remaining quota and
14
the remaining fishing season. When a vessel has much quota left but a short time to catch
it, the captain is under pressure to catch as much as possible per time unit so as to fully
utilize the vessel's quota.
This affects decisions on cruising speeds (higher fuel
consumption and cost)and the time on sea, particularly in bad weather. On the other hand,
when the remaining quota is small but there is a lot of time at hand, the time value is low
and the captain is not under any pressure to make critical decisions in short time periods.
2.2.3 Plant operation
Generally plant processing has received more attention than single trawler
operation. Applications of mathematical models that optimize plant operation in different
industries have been extensively reported in literature. Some of these models can be
applied in the fishing industry with small modifications. Models specific to fishing
industry include:
Mikalsen and Vassdal (1979) developed a multiperiod LP model to solve an
aggregate production planning problem for a Norwegian fishing company. The
model specifically focused on planning the operation of the company with regard to
stable workforce level, and with regard to the use of frozen raw material to smooth
the raw material supply during the different periods.
Jensson (1988) used a product mix LP to plan the daily production over a five-day
period. The model is developed as an aid to the production manager who has to
make decisions concerning product mix, assignment of labour to machines and
facilities, overtime, and raw material inventory.
15
2.2.4 Integrated fishing and fish processing
Only in recent years has there been an interest in integrating the optimization and
planning of fishing and fish processing. As mentioned above, Gunn et al (1991) studied
integration of fishing fleet and processing plant. However there is no work in reported
literature that includes the stochastic nature of catch rates or that focuses to solve the daily
trawler scheduling problem.
Jensson (1990) proposed a mixed integer program to solve the coordinated
scheduling problem of trawler landings and plant operation over a 14-day period. This
model assigned trawlers to landing days and determined raw material used for production
and inventory stored on a daily basis. The model did not include product mix and ignored
the uncertainty associated with catch.
Fishing and fish processing are two separate but integral components of the system.
Analyzing each component separately may lead to suboptimization of the total system.
What is required is a tool to analyze both components together with the objective of
improving system productivity and efficiency.
16
Chapter 3
METHODOLOGY
3.1 Approach
The objective of this research was to develop a methodology to improve the
operation of fishing and fish processing by coordinating these two operations.
As
described earlier, the operation of trawlers is dynamic and stochastic in nature. To model
these characteristics, a simulation model was developed to simulate the trawler operations.
The functions of the simulation model were to decide on the timing of a trawler to go
fishing, to generate the quantity of catch during the fishing trip, and to decide on when a
trawler lands the catch. The decisions made by the simulation model, are based on
decision rules which are embedded in the model.
Given a set of resources for a specified time period, the plant operation is
essentially a static process for that period. To model the plant operation, a multiperiod
linear programming (LP) model is formulated. Since the quantity of raw material and the
schedule of the trawler is known (determined by the simulation model), the LP model
determines the allocation of raw material and labour, mix of products, and the inventory of
raw material. Based on these outcome measures, the performance of the schedule can be
evaluated.
Figure 3.1 shows the conceptual methodology and the integration of the simulation
and the LP model. The simulation model, which operates the trawlers, generates catch for
each trawler and schedules their landing days. The landed catch is then used as input into
the linear programming model which maximizes the revenues from the trawler operation
17
and the plant operation. Based on the outcome, a schedule for the trawler operation is
developed and can be used to improve the decision rules used for trawler scheduling in the
simulation model.
Simulation model
LP model
Output
Generates catch for
trawlers, controls length
of trip, landing day and
which trawler is to land
its catch.
Product mix model which
determines labour requirements, work-in-process
inventory, amount of
products produced so as to
optimize production costs.
Trawler schedule
formulated according to
output from the two
previous models
Feedback on decision rule
14
Figure 3.1: Schematic overview of modeling approach.
3.2
Simulation model
3.2.1
Model description
The model simulates the operation of a fleet of n trawlers over t days planning
horizon. The objective of the simulation model is to provide the manager of a fish
processing plant with initial schedule on the trawlers landings and the amount of raw
material each trawler will land. The model simulates the catch of each trawler on every
day, makes decision on when and what trawler comes in to land its catch, and keeps record
on all the activity and data that relate to the trawler operation, as for example,
18
number of trips in the planning period, days on sea, catch on current trip and the year-todate catch.
The simulation model consists of five primary components (Figure 3.2):
System initialization
In this first part of the simulation model all variables and parameters are initialized.
Depending on their function, the variables take some specified value or are set to zero.
Critical variables for the simulation model initialized at this stage include: quota of each
trawler, production rate for each fish species, initial inventory, and production rate and
the minimum and maximum days a trawler can spend on sea during one trip.
Catch Generator
After initializing variables and parameters, the Catch Generator is called to
generate the catch. The Generator assigns the generated catch to each trawler for each day
the model runs. The Generator also assigns the mix of fish species in a day's catch by
calling the appropriate function (Catch_Combination). Typically a trawler catches four
main fish species. Other fish species are of less importance both in quantity and value.
The Catch Generator
The probability distribution for hourly catches was estimated based on sampling
statistics from reports of some Icelandic trawlers, which are required to keep records on
fishing operations and send them to Icelandic fisheries authorities. The data records
include information on every haul including fishing date, start of haul, trawling time,
fishing grounds, depth, and quantity of catch in kilograms by species.
19
START
System initialation
1. Initialization of specific parameters,
2. Set necessary variables equal to zero,
Catch Generator
1. Monthly average catch rates,
2. Catch Generator,
3. Catch Combination
Function: Parameters, like individual quota, trawler
capacity, beginning inventory and production rate are
Other variables are set equal to zero.
Input: Average monthly catch rate.
Function: Days catch obtained by multiplying generated catch rate per hour by average fishing hours per
day. Catch combination generated from days catch.
Output: Days catch and combintion for each trawler.
3. Time Value,
Function: Controls the daily operation of the trawlers.
If trawler is fishing and has got permit to land, check
whether the trawler is required to land. Assign flag to
trawler. If trawler is landing, check whether it can go
fishing or has to wait.
4. Quality check,
Output: Flag(0,1), whether to fish or land.
Trawler operation
1. Landing Permit,
2. Land Requirement (Go_Land),
Fleet and plant operation
1. Inventory Control,
2. Production Rate,
3. Time Value,
Function: Coordinate trawler and plant operation.
When trawler stays fishing, update trip length and trip
catch. When trawler lands, update inventory and
production rate. When trawler is ashore, check when
to go fishing because of plant time value.
Output: Status (0,1) whether trawler is fishing or not.
Report generation
1. Daily activity report,
2. Trip summary report,
3. Schedule for planning period,
4. Inventory status,
Function: Creates and prints daily actvity report for
each trawler, trip sununary report for each trawler,
operational schedule over the planning period for all the
trawlers and daily inventory report on the raw material
at the processing plant.
Output: Performance reports.
END
Figure 3.2: Flow of simulation model and its primary components.
20
The statistical work is described by Arnarson (1984) and Teitsson (1990). The LogNormal distribution was found to be a convenient model of catches per hour. Sigvaldason
et al. (1969) also used the Log-Normal distribution for catches per day, and Arnarson
(1984) showed that catch rates per hour or catch rates per day can be described by the Log-
Normal distribution. Further Arnarson (1984) analyzed the average trawling time per day
on sea and seasonal fluctuation in the catch rate . As bases for his statistical analyzes,
Arnarson (1984) used trawler records over a five year period from 1975 to 1979. The
daily catch is the sum of catches from several hauls. Teitsson (1990), and Arnarson and
Jensson (1991) observed a high degree of autocoffelation in the catches from haul to haul
and modeled the hourly catch series as a first order autoregressive process, described by
the following relationship:
Catch(t) = A * Catch(t-1) + Residual(t)
(3.1)
The least squares estimate for the coefficient A is the correlation coefficient which
was estimated to be 0.26 (Teitsson (1990), and Arnarson and Jensson (1991)). This
would also be the maximum likelihood estimate if the residuals were normally distributed.
The residuals provide the random fluctuations in the process above. Arnarson and
Jensson (1991) did not find higher order coefficients to be significantly different from zero.
By using the relationship between the Log-Normal and the Normal distributions
(see for example Derman et al. 1973), the Catch Generator models fluctuating catch using
(3.1) and :
Residual(t) = Exp( Mean(t) + StDev(t) * Normal (0,1))
(3.2)
where
Normal (0,1)
is a realization of the standardized normal distribution with mean equal
zero and standard deviation equal to 1.
21
Mean(t)
is the mean value of the normal distribution, which will give the desired
mean value of the Log-Normal distributed catches, (see Derman et al.
1973, pg. 411). The mean value of catch rates changes on a monthly basis
according to seasonal catch fluctuation described by Amarson (1984).
These seasonal fluctuations are shown in Figure 3.3.
is the standard deviation of the normal distribution.
StDev(t)
1400
1200
1000
Ao
600
400
200
Jan
Feb
Mar
Apr
Mai
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Figure 3.3: Seasonl fluctuations in catch rate (kg/hour).
Teitsson (1990) and Arnarson and Jensson (1991) simulated processing trawlers
where the catch is processed as soon as it comes onboard. The high autocovariance in catch
rate from haul to haul makes it very difficult to plan the production onboard and smooth out
the randomness. The trawling time for each haul is dependent on the catch rate. Therefore,
it was found appropriate to use the average of three catch rate generations as the hourly
catch rate and multiply it with the observed mean of trawling hours per day on sea
(Amarson 1984).
22
The Catch Combination
The statistical analyzes of Arnarson (1984) and Teitsson (1990) were based on the
catch rate for one species or for all species. Published data on the catch combination of a
haul is not available. When a trawler goes out fishing, often the captain has orders from
the fleet manager on primary catch species. For example a catch may consist of 90% of
one species and the rest being other species, or 90% of the catch may be two major
species. It is therefore hard to predict the catch combination unless the main fish species
the trawler wants to catch have been decided upon.
Based on this operation, it was decided that a trawler would only catch two fish
species, cod and pollock. When one of these two species is caught, it is likely that equal
amount of the other species is also caught. In the simulation model the catch combination
is generated randomly so that the percentage of cod in a day's catch is between 25% and
75%. The remainder of a day's catch is pollock. The numbers used in the simulation
model are based on operations at a typical company operating trawlers and is of course
different from what other companies would experience.
3.
Trawler operation
The next part of the model controls the operation of a trawler. At the beginning of
the planning period each trawler is sent out fishing. For each day of operation, the
simulation model checks on the status of each trawler, whether it is landing its catch or
fishing. If a trawler is fishing and is not eligible to land or if it is eligible to land but is not
required to, it keeps on fishing. If the trawler meets any of the criteria set by the decision
rules (explained below), it lands its catch. Depending on the status of a trawler, the
system assigns a day's catch to the trawler and updates its records. To handle multiple
facets of the operation, several functions have been designed to model different tasks. The
23
function LandPermit decides whether the trawler can land or not. The function Go_Land
makes the decision on whether a trawler is required to land its catch or keep on fishing.
The function TimeValue calculates the time value for each of the trawlers and the function
Quality calculates the quality of the trip's catch. The function Go_Status ties the results
from all the functions together and controls the operation of both the trawlers and the
processing plant.
LandPermit
The first criteria in the decision rule is used to decide whether a trawler can land its
catch or not. A trawler has to spend a minimum of five days on sea before it can land its
catch but no more than 15 days. If the trawler fulfills this requirement and it is not a
weekend, the trawler gets permit to land its catch. If a trawler is exceeding its holding
capacity in a trip or reaching its quota, a landing permit is granted irrespective of the day of
the week.
Go Land
When trawler gets a landing permit (i.e., eligible to land) and there is no other
trawler landing, the function Go_Land is called to find out whether the trawler is required
to land its catch. By comparing all the trawlers that have landing permit, the function finds
the trawler with maximum number of days spent on sea, the trawler with maximum catch
and the trawler with lowest quality raw material. The decision rule embedded in the
function is as follows: (see Decision Rule logic page 64).
-If the maximum number of days at sea is less than eight and there is a shortage of
raw material at the plant, the trawler with highest trip catch is assigned to land its
catch. If there is enough raw material on hand at the processing plant, the trawlers
keep on fishing for one more day.
24
If the maximum number of days at sea is between eight and twelve and the plant
inventory is low, the trawler with the lowest quality raw material onboard is
required to land its catch (see section on "quality" below).
When the maximum number of days spent on sea exceeds twelve, the number of
days for the trawler with lowest quality and the trawler with maximum number of
days on sea is compared. If the difference is less than two days, the trawler with
lower quality raw material is assigned to land its catch given that the processing
plant is in need of raw material. Otherwise the trawler with most days on sea is
assigned to land its catch.
-In case the processing plant does not need raw material, the function checks
whether there is a chance that a trawler will reach the maximum allowable number
of days during the next weekend. If this will be the case, the trawler is assigned to
land before the weekend.
-The function also checks if there is more than one trawler that might compete for the
same landing date, and takes appropriate steps by assigning trawlers to land their
catch earlier to avoid landing conflicts.
The function Go_Land returns information on whether a trawler is required to land
its catch or not. This information is obtained for every trawler on a particular day. In case
a trawler is required to land, the harbour becomes occupied on the specified day, and the
remaining trawlers do not get access for landing.
TimeValue
The concept of time value as applied to decision making in fisheries, was proposed
to aid in short term decisions about cruising speed when sailing to fishing ground or to
harbour. Intuitively, if no use can be made for the next hour, because of the weather
25
being too bad for fishing or reported catch rates being very low, then time has no or low
value, and the captain should choose economic cruising speed. The opposite case could
justify maximal speed.
Arnarson and Jensson (1991) extended the use of the time value for long term
decisions. Consider planning a fishing trip of several days or weeks, and comparing two
alternatives that differ in length of trips as well as net revenues. The time value helps to
evaluate the time from the finish of the shorter trip until the longer tip is finished. The
authors suggest that "long term" time value makes the two alternatives comparable. This
will depend on the quota the trawler has left for the planning period and the remaining time
of the planning period, as well as on expected catch rates for the time interval considered.
They further use an expected opportunity cost of future time (time value) to describe how a
captain of a processing trawler trades processing speed with product prices.
In this research the long term time value is used to describe the fleet manager's
decision on timing of a new fishing trip after landing the catch. The ratio of the quota for
the scheduling period for a trawler and the length of the scheduling period gives the average
catch per time unit that the trawler has to catch if the trawler wants to catch the entire quota
"just in time". By comparing this ratio to the ratio of the remaining quota and the remaining
time of the scheduling period each time the trawler is in harbour landing its catch, the fleet
manager sees whether the trawler is short of quota or if he has enough quota for the
remaining time of the season. As an illustrative example, consider a trawler that has 3000
MT quota and the scheduling period of 300 days. The base time value for the trawler is
then 3000/30-u = 10. If it is now assumed that 160 days of the scheduling period have
elapsed and that the trawler has caught 2000 MT a new time value is calculated, (3000-
2000)4(300-160) = 7.14, and compared to the base time value. In this case the fleet
manager sees that the trawler has less amount of quota per day left and will therefore take
action by letting trawler stay in harbour until the time value is within an acceptable range
26
again. If, on the other hand the time value is equal to or higher than the base time value,
the fleet manager will let the trawler keep on fishing.
This definition of the time value ignores the seasonal fluctuation in estimating the
ratio and also the probability of the most likely catch for the remaining season. Its use here
is mainly to indicate to the fleet manager the status of the trawler. If the current time value
is lower than the base time value, and the company wishes to keep the employment level
steady throughout the period, there is no rush in sending the trawler out for fishing. On
the other hand, if the time value is higher, the trawler has to keep on fishing in order to
catch all the quota before the end of the period.
Qil@bItz
As in other branches of the food industry, freshness and quality of the raw material
are very important and directly affect the value of the products produced. Drop in quality
of fresh fish depends on many factors. Four major factors that affect quality (Hauss 1988)
are: time, temperature, fish species, and seasonal condition of fish when caught. All
these factors directly affect the bacterial growth rate in dead fish. Various curves have been
published that show the drop of quality as function of these different factors (Hauss 1988).
Because of the importance of quality of raw material, it is one of the main criteria
used in the simulation model. Since no published data is available on the link between
quality of raw material and the value of the raw material, a relative quality function was
developed to help distinguish between the quality of catch of two trawlers. In developing
this function seasonal condition of the fish is assumed to be constant. Also the quality
function assumes that the trip catch of a trawler consists of only one species and that the
raw material is kept at constant temperature. The quality of trip catch of trawler is then only
a function of time (see Figure 3.4).
27
100
95
90
85
ti
80
75
1. . . .
dn
70
65
60
55
50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Days
Figure 3.4: Relative quality of fresh fish as function of time.
4.
Plant operation
In the simulation model, the operation of both trawlers and the processing plant is
coordinated and controlled by the function Go_Status. Decisions on trawler operation are
based on the status of the processing plant. A trawler lands its catch only when the
processing plant is in need of raw material or a trawler is approaching its due date on sea. To
control these operations, several functions were developed. These include:
Inventory control
When trawler lands its catch, the raw material is stored in a cold storage facility. At
the time of landing the raw material inventory is updated accordingly. At the end of each day,
the days usage of raw material is deducted from the inventory according to the daily
production rate. There are limits on how much inventory the plant can carry on hand and as
soon as the inventory reaches this limit, action is taken in delaying further supply of raw
material until the inventory level is below the limit (see section on "Plant time value").
28
production rate. There are limits on how much inventory the plant can carry on hand and
as soon as the inventory reaches this limit, action is taken in delaying further supply of raw
material until the inventory level is below the limit (see section on "Plant time value").
Production rate
The amount of raw material used for production is based on the daily average
production rate. This rate is based on production rate for each fish species and on seasonal
variation of workforce level. When a trawler lands its catch, the weighted average
production rate of the catch combination is calculated. This rate is then used to monitor
inventory until the next trawler lands.
There are three different inventory levels used to decide the production rate. These
are based on the amount of inventory on hand and the expected amount of catch that the
trawlers have reported, and reflect the quantity of the inventory in order to level the
production accordingly.
Plant time value
As defined, the time value is used to help make strategic decisions for each of the
trawlers. To control a fleet of trawlers, another interpretation of the time value is used. At
the time when trawler is ashore, the processing plant has to evaluate the urgency of further
raw material supply for the next one or two weeks. Based on this evaluation, the
processing plants decide whether to send a trawler fishing or let it wait for another day. By
estimating the on-hand inventory and the catch that the current fishing trawlers have
reported, the processing plant can schedule its production ahead of time. If the total onhand inventory and reported catch passes some threshold criteria, the plant asks the trawler
to wait another day ashore since further increase in inventory can result in aging of raw
material, diminishing its quality and value of products.
29
5.
Report generation
The system generates four different type of reports.
Daily activity : For each day, the activity of a trawler is reported: whether it is
fishing or landing. When it is fishing, the days catch is reported as well as the
catch combination.
Summary report : For each trawler, a summary of the trip report is generated. The
report contains information on the trip number, the day of the period when the
trawler landed the catch, the trip length in days, the catch combination and the total
catch. This report represents the basic input to the linear programming model.
Operation schedule : The schedule gives an overview of the operation of all the
trawlers over the entire planning period. From the schedule, the activity pattern of
the trawlers' operations can be assessed.
Inventory status : This report shows the daily inventory status of the raw material
at the processing plant as estimated in the simulation model.
30
3.3 Linear programming model for product mix
3.3.1 General
The decision making activity considered in the linear programming model is at a
macro-level that focuses on the products to be produced and requirements of critical
resources. The objective was to integrate the simulation component that generates the
trawler schedule and the associated catch with the linear programming optimization module
that analyzed system operation. Micro-level models have been developed (see Jensson,
1988) that take the macro-level linear programming output and develop product-mix
decisions for each workstation.
3.3.2 Mathematical formulation
Indices
Indices used in the linear programming model are:
= category of raw material i.e. fish species;
= type of product processed, for example cod "Dinner Cut" or pollock "Iglo"
determined by market requirements;
=
time period, for example daily production if the planning horizon is one month;
= number of trawlers that land their catch at the processing plant;
o
=
regular hours used for processing;
=
overtime hours used for processing;
31
Decision variables
Xfpt
=
quantity (kg) of product p produced from fish species f in time period t;
Yft
=
quantity (kg) of fish species f landed in time period t;
Ltr
=
regular labour hours used in the processing plant in time period t;
1-10
=
overtime labour hours used in the processing plant in time period t;
Ift
=
amount (kg) of fish species f kept in inventory at the end of period t;
Ht
=
number of employees hired during period t,
Ft
=
number of employees laid off during period t,
Coefficients
CH
=
cost of hiring (Icelandic Krona, ISK/employee hired);
CF
=
cost of laying off (ISIC/employee laid off);
CLR
=
hourly cost (ISK/hr) of labour working regular 8 hours per day;
CID
=
hourly cost (ISK/hr) of labour working overtime;
S
=
selling price (ISK/kg) of product p produced from fish species f,
Pf
=
price (ISK/kg) of fish species f,
CIt
=
cost of holding inventory during period t, (ISK/period)
Vit
=
harvesting cost of trawler i landing in period t, (ISIC/kg harvested)
N fP
= amount of fish species f (kg) needed to produce one kg of product p, (kg raw
fP
mat/kg products),
MfP
=
labour hours needed to produce one kg of product p from fish species f,
(hrs/kg)
0
= number of hours each labour force provides per period,
32
QLfp
lower bounds on demand for product p made from fish species f,
=
QUfp = upper bounds on demand for product p made from fish species f,
Rft
= fish species f available in period t,
Mathematical model
The objective of the model is to maximize net revenues over time t. The cost items
of the model are raw material, operational cost of trawlers, cost of labour, hiring and
laying-off and the cost of holding inventory.
Max
{
fp
SfpXfpt- 'f"'ft - CLRLt, - CLoLto - CHHt - CFFt - CitIt - I VitYft}
where:
PfYft
= cost of raw material. It is assumed that all raw material that is landed is bought
by the processing facility, regardless of its use;
= cost of regular labour hours. It is assumed that the processing plant has to pay
at least a minimum number of hours per period even if the plant is idle;
CLoLto = cost of overtime labour hours used for processing;
CHHt
= cost of hiring employees;
CFFt
= cost of firing employees;
Chit
= cost of holding inventory between periods;
VitYft
= cost of harvesting;
33
The objective function maximized is subject to the following constraints:
Only available raw material can be used for processing:
E Nfp Xfpt
Yft ; for all f and t
43_1
This is to make certain that the amount of product p produced from fish species f in
period t, NfpXfpt, is bound by the maximum amount of fish species f available in
each period, i.e. the inventory of fish species f from the previous period (
)
plus the fish species f landed in period t ( Yft ).
Labour requirements for all products:
fp
Mfp Xfpt
L, for all t
The sum of labour hours required to produce each product in period t, has to be
less or equal to the total amount of labour hours available in the company during
that period.
Restricted available labour in period t:
Lt,min
Lt
Lt,max
,
for all t,
In each period t, the company has limited workforce resources, Lt,mtnand Lt,max,
Workforce balance between periods:
Lt = Lt_i + OFIt - OFt,
,
for all t,
Workforce that is hired in period t is available in that period while worldorce that is
laid off has to be given r period notice.
Market demand for the products:
QLfpt 5_ Xfpt
QUfpt, for all f, p and t,
34
There are upper and lower bounds on demand (market restrictions) for product p
made from fish species f in period t; It is assumed that the company only produces
to meet demand, it will not produce to stock.
Inventory balance:
+ Yft =
+
Nfp Xfpt , for all f and t,
The inventory from the previous period plus the fish species f landed in period t,
are available for production in period t. raw material not used for production is
stored as inventory (V for use in the next period.
Inventory freshness of raw material:
I{
It,u
t_d
,
for all t,
'
Due to freshness requirements, the oldest inventory cannot be held longer than D
days, the upper limit is the maximum amount that the plant can produce in D days.
Inventory storage limits; to account for limited storage for inventory:
t
f
Imax,
for all f and t,
Non-negativity constraints:
Xfpt, Yft, Lt, Ht, Ft, kt,
0, for all f, p and t,
The output from the LP model consists of the amount of each product type
produced, amount of raw material inventory held for each species and labour hours used.
Also, it shows the resources used for each time period. As explained in the next section,
the LP output can be used to refine the trawler scheduling heuristic used in the simulation
model.
35
3.4 Implementation
The simulation model is programmed in Think C, version 5.0, for the Macintosh
II si. Building the simulator in a general programming language was considered to be more
flexible in modeling and report design than using a special purpose simulation language.
The model consists of several functions and modules that are called by the main program as
the program runs. The structure of the model is shown in a flow chart in Appendix A-1. It
took on average one and a half minutes for a run of the simulation model.
The linear programming model was formulated and generated in MPL, a modelling
program language for UNDO, using a 386 PC compatible computer. The size of the
model depends on the time horizon for which it is formulated. For a planning horizon of
10 weeks, two fish species and two products per species, the model had 704 variables
and 356 constraints, and took on average 3 minutes per run on a 386, 20 MHz personal
computer.
36
Chapter 4
RESULTS
Model validation
4.1
The decision support methodology was validated using data from a major fishing
company in Iceland. The data requirements for the model can be broken down into two
components: data input for the simulation model and data input for the linear programming
model.
4.1.1 Data input for simulation model
The data used in the simulation model for simulating the trawler operation is shown
in Table 4.1. The company operates four fresh fish trawlers. The capacity and the quota of
only the high volume fish species are considered here. These are cod and pollock. Also, two
primary products are produced from each species. Quantity data is expressed in the metric
system, i.e. kilogram (kg) and metric tons (MT).
Following the fishing practice at this company, it is assumed that a trawler has to
spend at least five days on sea but no more than 15 days. The lower limit is based on trawler
Table 4.1: Capacity and quota of trawlers.
Trawler 1
Trawler 2
Trawler 3
Trawler 4
,
Capacity (MT)
Quota (MT)
195
190
3317
3250
2978
4154
200
250
37
economics, while the upper limit is due to aging of raw material. A measure of production
rate reflecting the usage of raw material is used in the simulation model to deplete inventory
in determining the trawler schedule. Different levels of production rates can be used with
varying accuracy of simulation output. For example, in the base model, a fixed production
rate is assumed, independent of time of year and on-hand inventory.
It is assumed that the company wishes not to keep more inventory on hand than can
be processed in one week. The inventory threshold criteria used for the time value of the
processing plant is therefore set equal to 440 MT which is approximately one week's
inventory. Furthermore, (1) auction markets are not considered as option for the company,
(2) weather interruptions and delays due to equipment breakdown are ignored, and (3) it is
assumed that regular working time in the processing plant is eight hours per day during
weekdays.
4.1.2
Data input for linear programming model
The amount of catch from the simulation model is one input to the LP model. The
remaining input is summarized in Tables 4.2 through 4.4, and Figure 4.1. Table 4.2 shows
the cost of raw material, the sales price of each of the products, as well as the raw material
and labour requirements for each product. The unit for all costs and revenues are Icelandic
Krona (shown as ISK).
Table 4.2: Cost of raw material, sales price of product, and raw material and labour requirements.
Raw
Cost
Material ISK/kg
Sales price
Product
ISIC/kg
Raw material
Yield
kg RM/kg Prod
Labour
kg RM/hr
hr/kgprod
Cod
58
Cod-1
Cod-2
302
231
40.0%
46.0%
2.5000
2.1739
32
55
0.0781
0.0395
Pollock
35
Pol-1
147
121
50.0%
56.0%
2.0000
45
55
0.0444
0.0325
Pol-2
1.7857
38
The table shows the yield of raw material processed and the quantity in kilogram of
raw material needed to produce on kilogram of product. The labour requirement column
shows the amount of raw material processed in one man-hour, and the hours of labour needed
to produce one kilogram of product.
The available labour hours during the year are shown in Figure 4.1. The available
hours are based on historical data and reflect the scheduled labour profile the company wants
to maintain for the year. For each week it is assumed that the company has to have some
minimum number of workers on payroll but on any given day the company may add up to
five more workers. It is further assumed that the workers will be willing to work four hours
of overtime on weekdays and eight hours on Saturdays. In addition, there is no work on
Sundays. Table 4.3 shows the work pattern as well as the cost of regular and overtime labour.
1400
1400
1200
1200
1000
1000 6.
7
800
800
600
SOO
400
400
200
200
tt
7
r..
"et
0
0
;73
c71
0,
V)
in
C.)
r..
(1
cn
V)
V'
Number of week
= Regular
177M7701 Overtime
Figure 4.1: Comparison of expected catch rate and workforce level.
Catch Rate
V'
N.
0)
39
Table 4.3: Work pattern during the week and hourly wages.
Regular hours
Overtime hours
Pattern
Wages
8 hrs weekdays
No work on weekends
650 ISK per hour
4 hrs weekdays
8 hrs Saturdays
No work on Sundays
950 ISK per hour
If the company has to hold raw material inventory, it incurs inventory holding cost.
Table 4.4 summarizes the inventory holding cost, for each fish species. The high inventory
costs over the weekend not only reflect holding cost, but also the loss in quality for holding
raw material for days when it is not processed.
Table 4.4: Inventory holding cost of raw material during weekdays and weekends.
Cod
Pollock
Weekdays
Weekends
1.00 ISK/kg
0.50 ISK/kg
58.00 ISK/kg
35.00 ISK/kg
The LP model described in the previous chapter was formulated to be applied to a
wide range of applications. Some of the components of the general formulation are not
included in this validation effort. Specifically, these are: hiring and layoff costs associated
with employees, and trawler operating cost in the objective function. Additionally, the
constraint associated with inventory freshness (constraint number seven) is not included in
the LP; however, the raw material quality has been included in the simulation model.
40
4.2
Results
The objective of the research is to design a decision support system to aid in
improving current decision strategies used by the operations management of a fishing
company. The accuracy of the results and the suggestion made by the decision support system
depends on the decision rules used in the simulation model. Thus, a basic focus of the
analysis was to improve the decision capability of the system.
4.2.1
Initial decision rule (Rule A)
In the first series of runs, the production rate of the processing plant, as used in the
simulation model, was held constant throughout the year. The production rates used were
40 MT/day for cod and 50 MT/day for pollock. Based on the inventory status of the plant,
the model decides whether it needs raw material or not. In case the plant is running out of
raw material, i.e. has less than approximately one and a half days inventory on hand, a trawler
is called in to land its catch. The trawler is chosen according to length of trip or the relative
quality of the catch.
It was decided to analyze the production system at two different periods of the year:
the spring, covering the months of February through April; and summer, covering the
months of May through August. Each period represents different characteristics; in the
spring the expected catch rate varies greatly whereas in the summer it is high and relatively
stable.
The trip summary report generated by the simulation model (see Appendix A-3)
contains the output needed for the linear programming model; it includes the catch a trawler
had in a trip, the length of the trip and the landing day. Examples of the output, from the
linear programming model are given in Tables C.1 and C.2 in Appendix C; a section of the
output for one week period for Rule C is shown in Table 4.5. To make the model output easy
to comprehend and use, this information was generated using spreadsheet program. Given
41
the daily raw material input from the simulation model and the product mix decision by the
linear program, the amount of raw material and labour hours used each day, and the inventory
held in stock are calculated by the spreadsheet program and presented in the upper part of the
table. The lower part of the table calculates the revenues and costs of each category.
Table 4.5: Example of the summarized LP model output (Rule C).
Weekday
SUN
MON
THU
WED
THU
FRI
SAT
No. of day
29
30
31
32
33
34
35
Incoming RM
Pollock
Used RM
Pollock
Inventory(EOP)
Produced
Used labour
Available hours
Labour slack
Cod
57000
61000
Cod
48431
Cod
Pollock
Cod-1
Cod-2
Pol-1
Poi-2
Hours
Regular
Overtime
Regular
Overtime
8569
61000
Icelandic Krona
(000 ISK)
Incoming RM
Used RM
Inventory(EOP)
Produced
Used labour
Available hours
Labour cost
Cod
Pollock
Cod
Pollock
Cod
Pollock
Cod-1
Cod-2
Pol-1
Pol-2
Hours
Regular
Overtime
Regular
Overtime
22278
880
600
280
8569
28330
38000
58000
28169
9831
25805
39640
25225
9831
32670
2919
90670
11268
585
14165
880
600
280
880
600
280
64865
3932
25225
12903
19820
12613
880
600
280
880
600
280
560
560
SUN
MON
THU
WED
THU
FRI
SAT
29
30
31
32
33
34
35
570
903
1387
3306
2135
2809
497
992
16
882
5146
45
3403
32
1188
13
1897
2914
1854
880
600
280
390
267
880
600
280
390
267
560
135
2082
880
600
280
390
267
883
10
9
31
2204
2030
1634
880
600
280
390
267
880
600
280
390
266
560
533
42
To account for variation in results due to random numbers, each modeling scenario
was iterated twice. Table 4.6 shows the results from both iterations for each period. The
quantity of raw material in Table 4.6 is obtained from the simulation model, the product mix
decision (quantity of products, labour requirements and revenues) are obtained from the LP
model.
Table 4.6: Results from Rule A showing raw material, products, labour and revenues.
Products
Raw Material
Cod
Pol
Total
Cod-1
Cod-2
Pol-1
Pol-2
Total
Labour
Revenue
MT
MT
MT
MT
MT
MT
MT
MT
hrs
ISK(000)
Iteration 1
Spring
Summer
1438
2099
1773
2535
3211
139
186
501
751
679
915
233
395
1552
2247
68411
4634
97736
63963
78921
Iteration 2
Spring
Summer
1595
1923
2428
3518
4477
144
261
568
642
619
808
376
455
1707
2049
2166
73411
96459
65458
94897
Average
Spring
Summer
1517
1848
3365
141
2482
4556
224
535
697
649
2074
305
425
1630
2207
70911
97097
64710
86909
861
It can be seen in Table 4.6 that there is considerable variation in used labour hours and in
revenues between the two iterations which reflects the amount of raw material received and
processed.
To see how well the simulated trawler operation fits the plant operation, the daily
inventory of the simulation model is compared with that of the LP model by calculating the
absolute deviation in inventory between the two models. The average absolute deviation is
shown in Table 4.7 along with its standard deviation and maximum values. An example of
the daily variation is shown graphically in Figures C.1 throuh C.4 in Appendix C.
43
Variation in the inventory deviation from run to run is not as obvious as for the labour and
revenues observed in Table 4.6. The deviation is higher during spring than summer which
complies with the characteristics of the two periods.
Table 4.7: Deviation in inventory between simulation model and LP model for Rule A.
I
Iteration 1
Spring
Summer
Iteration 2
Spring
Summer
Average
Spring
Summer
4.2.2
Mean
1
St.Dev.
I
Max
34.57
23.27
30.20
20.53
112.81
29.59
25.75
31.27
26.60
115.94
107.16
32.08
24.51
30.74
23.57
114.37
89.12
71.07
Modification of decision rule
Since the primary objective of analysis was to improve the accuracy of the decision
made by the system, the decision rule in the simulation module was modified based on the
initial runs. Two different scenarios were iterated.
Rule B: The production rate of the processing plant used in the simulation model was varied
to accommodate seasonal fluctuations with the base production rate being 27 MT/day for cod
and 38 MT/day for pollock. This is in contrast to the constant production rate used in Rule
A. More precisely, the production rate relates directly to an average monthly variation of
the workforce level used in the LP model.
Rule C: In addition to the varying seasonal production rate, the third decision rule includes
consideration of the on-hand inventory in the processing plant and potential inventory that
may be expected due to landing of trawlers. Depending on the amount of inventory on hand
44
and the potential inventory, the decision rule decides on one of four different levels of
production rate that is appropriate for the available and expected amount of inventory. Table
4.8 summarizes the three decision rules. The results from using Rule B and C are summarized
in Tables 4.9 and 4.10, along with those from Rule A.
Table 4.8: Definition of decision rules A, B, and C.
Rule
Description
Rule A
Production rate fixed, independent of time and
on-hand inventory.
Rule B
Production rate fixed but varies according to time
of year.
Rule C
Production rate varies according to time of year
and on-hand inventory
Table 4.9: Siunmerized results showing raw material, products, labour hours, and revenues for Rules
A, B, and C.
Raw Material
,
Products
Cod
Pol
Total
1517
Cod-1
Cod-2
535
697
Rule A
Spring
Summer
1848
2482
3365
141
2074
4556
224
Rule B
Spring
Summer
1624
2095
1917
3541
4780
162
531
560
2685
Rule C
Spring
Summer
1628
2217
2007
2449
3635
4665
173
550
566
374
353
Poi-2
Total
Labour hrs
Revenues
649
861
305
425
1630
2207
70911
97097
64710
86909
641
1078
355
297
1719
2258
74856
112975
61203
131007
789
1094
241
1752
2156
78120
111582
129748
Pol-1
122
71444
45
Table 4.10: Deviation in inventory between simulation model and LP model for Rules A, B, and C.
Mean
St.Dev.
Max
47.02
Rule A
Spring
Summer
107.83
51.92
74.42
225.00
272.00
Rule B
Spring
Summer
32.08
24.51
30.74
23.57
116.00
107.00
Rule C
Spring
Summer
13.24
14.04
11.79
15.99
41.93
65.63
4.3
Comparison of decision rules
4.3.1
Raw material
,
Comparing the amount of raw material the trawlers land during the two observation
periods under the three different decision rules shows that the landed catch is very similar
(Table 4.11). During the 13 week spring period, the trawlers land approximately 3500 metric
tons whereas they land approximately 4600 metric tons during the 17 week summer
period. The trawlers under decision Rule A land less catch than trawlers under the other two
rules. This variation is a combination of two factors: stochastic nature of the catch figures
generated using random numbers, and fixed production rate of the processing plant under
Rule A resulting in more inventory and therefore less need of raw material.
Both Table 4.9 and Figure 4.2 show that the composition of the catch is almost the
same for the different rules during the two periods. Approximately 45% of the total catch is
cod; the rest is pollock.
46
I. B
RIJN A
Cod
Rule C
0 Pelock
Figure 4.2a: Landed raw material in spring by
fish species.
Fbi*A
Rtdo B
Cad
a
RuIC
Pollock I
Figure 4.2b: Landed raw material in summer by
fish species.
Although the amount of raw material landed for the three rules is almost the same, the
weekly landing pattern is different for each rule. Figure 4.3 shows how the average weekly
landing pattern during spring is different among the rules. In Rule A, trawlers land their catch
on all days of the week but most of the catch is landed on Mondays, Wednesdays, and
Thursdays. For Rule B the pattern is similar but now more catch is landed on Mondays and
less on Thursdays. For Rule C the pattern is very different. Most of the weekly amount landed
is on Monday's and Wednesday's; very little is landed on Tuesday's and Thursday's and none
on Friday's.
A similar landing pattern occurs during the summer period. Figure 4.4 shows the
average weekly landing pattern for rules A, B, and C. As in spring, trawlers land their catch
on all week days under Rule A. Considerable more catch is landed during the last days of
week than under either rules B or C. Compared to Rule A, the landings in Rule B move
towards the beginning of the week. More is landed on Monday's and Tuesday's and less on
Thursday's. No landings occurs on Friday's. In Rule C the landing on Thursday's and Friday's
shift further to the first days of week; most of the landings occur on Monday's, Tuesday's,
and Wednesday's.
47
The weekly landing pattern has important inventory implications. Figures 4.3 and
4.4 also show the average weekly inventory resulting from the LP model. For rules A and
B, inventory is held over the entire week in spring whereas there is no inventory kept over
the weekend under Rule C. During summer, Rule A holds more inventory over the weekends
than before but now Rule B holds no inventory over the weekend. The weekly inventory
under Rule C is minimal.
48
140.00
120.00
100.00
80 00
60.00
-3f-"
-
40.00
%**
20.00
4-
Ij
0.00
Sun
Tue
Mon
Wed
Thu
Fri
Sat
Fri
Sat
Figure 4.3a: Average weekly landing and inventory in spring for Rule A.
140.00
120.00
100.00
80.00
60.00
40.00
*
20.00
0.00
Sun
Tue
Wed
Thu
Figure 4.3b: Average weekly landing and inventory in spring for Rule B.
140.00
120.00
100.00
80.00
60.00
40.00
20.00
0.00
Sun
Mon
Tue
Wed
Inventory
111
Thu
Landing
Figure 4.3c: Average weekly landing and inventory in spring for Rule C.
Fri
Sat
49
140.00
120.00
100 00
16;:::re`
80.00
skii!
SS
60.00
40.00
:
3.41.:,:t
-
20.00
000
Sun
Mat
Tue
Wed
Thu
Sat
Figure 4.4a: Average weekly landing and inventory in summer for Rule A.
140.00
120.00
100.00
;
80.00
44.4.
J."
.
60.00
40.00
2000.
0.00
Sun
Mon
Tue
Wed
Thu
Sat
Figure 4.4b: Average weekly landing and inventory in summer for Rule B.
140.00
120.00
100.00
80.00
60.00
40.00
20.00
ye.
0.00
Sun
Mon
Tue
Wed
IEl Inventory
Thu
Lancing
Figure 4.4c: Average weekly landing and inventory in summer for Rule C.
Fri
Sat
50
Product mix.
Table 4.10 also shows the breakdown of products produced. The total quantity of
products during spring and summer using the different rules is similar. However, the
distribution of products varies shown in Figure 4.5 and Figure 4.6.
18.69%
20.66%
39.81%
Figure 4.5a: Spring, Rule A.
Figure 4.5b: Spring, Rule B
13.73%
Cod-1
28 Cod-2
Pot-1
45.02%
Figure 4.5c: Spring, Rule C
0 Pol-2
Figure 4.5: Product mix in spring for Rules A,
B, and C.
52
4.3.3
Profit
Table 4.9 summarizes the average net revenues for each of the three decision rules.
Given the amount of landed raw material, the product mix and labour hours, three different
profit measures are calculated. The profit, measured in Icelandic Krona (ISK) is shown per
kilogram of landed raw material, per kilogram of product produced, and per labour hour used
for production. Figures 4.7 and 4.8 show the three different profit measures for the three
different decision rules during the spring and summer period respectively. During spring
Rule C gives the highest profit for all three measures followed closely by Rule A. Rule B has
lower profit than both Rule A and Rule C. The profit for Rule A measured by any of the three
measures is relative high because of less raw material landed and therefore fewer labour hours
used. The summer months (Figure 4.8) show rules B and C with significantly higher profits
than Rule A.
120.00
100.00
80.00
60.00
40.00
20.00
Rule C
Rule B
0.00
Rule A
Kg product
Kg raw mat.
Labour hour
Figure 4.7: Comparison of different profit measures during spring for Rules A, B, and C.
53
120.00
100.00
Rule C
Rule B
Rule A
Kg product
Kg raw mat.
Labour hour
Figure 4.8: Comparison of different profit measures during summer for Rules A, B, and C.
4.3.4
Inventory
Table 4.10 shows the absolute deviation in inventory between the simulation model
and the linear programming model; these results are presented graphically in Figures 4.9 and
4.10.
Figure 4.9 shows the deviation for spring months. The mean deviation is significantly
lower for Rule C which also has the lowest standard deviation and the lowest maximum value
observed in the period. Rule B performance is worse than Rule C but considerably better than
Rule A. The high maximum value for Rule A indicates the high variation experienced in the
inventory deviation due to a fixed production rate.
54
The same pattern is also true for the summer period as shown in Figure 4.10. The
values for Rule A are even higher than in spring and the difference between Rule B and Rule
C is still significant but not as great as in spring. As before the maximum value gives an
indication about the variation of the deviation.
As discussed earlier the weekly landing pattern affects the inventory levels. With
almost no landings towards the end of the week, Rule C has an ideal inventory pattern. Rule
A produces the worst results as a substantial proportion of catch landing occurs on Thursdays
and Fridays.
250
200
150
100
50
Rule A
-
Rule C
-
Mean
St.Dev.
Rule B
Max
Figure 4.9: Absolute deviation of inventory during spring for Rules A, B, and C.
55
300
250
Rule A
Rule B
Rule C
Figure 4.10: Absolute deviation of inventory during summer for Rules A, B, and C.
4.4
Evaluation of results
Figure 4.3 and Figure 4.4 show how the average weekly landing of the catch shifted
from landing on all the week days under Rule A towards fewer days and earlier in the week
landings under Rules B and C. Under Rule C the landings favored two days more than any
other days, Monday's and Wednesday's. This is because on Mondays the plant has little if
any inventory on hand and needs raw material. On Wednesday the inventory level has
become low enough for the plant to require raw material. Raw material landed on
Wednesday's then serves the plant until the weekend with little or no inventory on hand over
the weekend. The earlier the raw material is landed during the week, the better opportunity
for the plant to plan production for the week. Landings late in the week often results in product
mix selections that are of less value but can be processed faster. This becomes apparent from
Figures 4.5 and 4.6. Because of the number of trawlers used, their maximum length of trip
56
and quality of catch, a second landing in a week is necessary. This smoothes the inventory
and increases the freshness of the raw material which has a significant effect on the value
of products. This is achieved under Rule C, but to avoid inventory holding over weekends
and to prefer freshness, the inventory level is higher during the middle of the week than under
the other two rules.
Comparing the inventory management between periods for the three different
decision rules is interesting. Under decision Rule A the inventory management gets worse
from spring to summer while the opposite is true about decision Rule B. The explanation of
this is the combined effect of varying seasonal catch rate and different production rate rules.
Decision Rule A uses constant production rate for the processing plant. In the first part of
spring the catch is low enough so that the plant can process the incoming raw material without
building any inventory. Towards the end of spring the catch increases are substantially more
than the production can process, resulting in inventory build up. Therefore, inventory
management is even worse in summer than in spring.
Under decision Rule B the opposite is true. The reason for improved inventory
management in Rule B in summer compared to spring, is due to different catch rate behavior
in these two periods and varying production rate. In spring the catch rate varies greatly,
increasing rapidly from low rates in the beginning of the period to high rates towards the end
of the period. The production rate in the simulation model, varies monthly but is constant
during a month; it lags the catch rate and does not respond quickly enough to daily
variations in catch rate. In summer the catch rate is relatively constant and variations in catch
rate are lower having less impact on the inventory level than in spring.
Changes in the inventory level between periods under Rule C are not as significant
as for the other two. The mean deviation is almost the same whereas the standard deviation
increases slightly in summer. The reason is because of the stochastic nature of the process.
Also, bigger catch in summer results in higher variation in inventory level The deviation
57
under Rule C is significantly lower than the deviation under the other two rules. This superior
performance by the model under Rule C is because the production rate varies daily and the
model can therefore respond more instantly to varying catch rates.
Considering the inventory management of Rule C it is not surprising that this rule also
has the highest profit. In spring the profit for Rule A follows Rule C closely and outperforms
Rule B. Because the raw material landings under Rule A are less than under Rule B and C,
there is less labour time used and also there is better opportunity to produce more valuable
product that takes more time. Figure 4.5 shows the product mix to support this where it can
be seen that more of Pol-1 is produced under Rule A than under Rule B, with the amount of
cod products being similar. For Rule C the portion of the higher valued product Pol-1 is
higher. In summer, the product mix decision gives a better indication of how well the
different decision rules are utilizing their resources to contribute to higher profits.
In general, the structure of the decision rule affects the performance of the system.
If more information on production and inventory, and fluctuations in catch, are included
in the decision rule, the prediction of the model becomes more accurate. On the other hand
including more information will increase both the complexity of the model and the data
requirements.
58
Chapter 5
CONCLUSIONS
The purpose of this research was to develop a methodology to aid management of
a fishing company to coordinate fishing operations and fish processing. An integrated
system consisting of a simulation model and a linear programming (LP) model were
developed to handle this task. From the viewpoint of the processing plant, it is important
that the flow of raw material is as steady and smooth as possible. There are of course
some practical limitations, as for example, little processing during weekends in the
processing plants. This forces the plant to minimize the raw material inventory it has to
hold over weekends and schedule landing earlier in the week. Incoming raw material and
inventory are therefore important indicators on how well the trawlers and the plant
operations have been coordinated.
The simulation model generates catch for the trawlers and controls the length of
the fishing trip, and which and when a trawler lands its catch. The generated catch along
with the landing day are then used as input into the LP model formulated to optimize the
plant operation. The LP model is a typical product mix model which determines labour
requirements, work-in-process inventory levels and amount of products produced so as
to optimize production costs.
The focus of the system was improved decision making. To this effect, three
decision rules were modeled and analyzed. The decision rules reflect different level of
information built into the simulation model. Decision rule A represents fixed production
rate for each fish species throughout the year. In Rule B the production rate reflects
seasonal variations on a monthly basis. In Rule C the production rate is a function of
59
time (month of year), the current inventory level and the prospective raw material
supply.
The system showed that the results were significantly more accurate and desirable
under Rule C. The inventory on-hand was minimized, resulting in higher quality of raw
material processed and resulting in products with more profits. Also, the landing pattern
of trawlers was more desirable with most of the landing occurring early in the week,
particularly on Mondays and Wednesday. In contrast, trawlers land their catch later in
week for Rule B and C. When trawlers land their catch late in the week, the processing
plant has less time to process the catch and there is increased probability that the plant has
to hold inventory over the weekend. When there is inventory build up at the plant, the
time value of the plant holds the trawlers in harbour until the inventory level is below the
certain threshold value of the plant. This effect of the time value increases the number of
days a trawler spends ashore and therefore lowers the efficiency of the trawlers and their
total catch.
For three different decision rules analyzed into the simulation model it was found
that as more information is included in the model, the prediction of the system becomes
more accurate. However, there is a tradeoff between increased information requirements
and increased accuracy of the system. By increasing the information requirement, much
more data than is usually maintained by fishing companies today has to be collected and
analyzed. Evaluating this tradeoff point is difficult since it is hard to estimate the effect
of the stochastic nature of the process. The deviation of the inventory levels between the
simulation model and the LP model is a good measure of the system's predictability.
Furthermore, the inventory level along with the quantity and quality of incoming raw
material also give an indication on how well the system performs.
60
There are two significant contributions of this research:
Integration of fishing and fish processing. These two components have to be
analyzed as one system if sub-optimization is to be avoided. Also, including fish
quality measures in making catch decisions is unique to this research; it
significantly enhances the utility of this model.
2.
Integration of optimization and heuristics modeling to aid decision making in the
fishing industry. Each of these two modeling techniques have their own unique
strengths and capabilities; the blending utilizes the strength of each technique.
For optimization techniques to be useful, they need to accommodate stochastic
variations in system parameters. Stochastic optimization techniques are of little
pragmatic value because of model complexity and computational time. Using a
heuristic technique such as simulation helps analyze the stochastic components of
a system without increasing the complexity of the optimization techniques. This
approach used here has wide implication for other application areas.
61
REFERENCES
Andrason, Th. I., "Production Management onboard on Factory Trawlers". Final
Thesis, Engineering Faculty, University of Iceland, 1990 (in Icelandic).
Arnarson, I., "Economical Analysis of Fishing Vessels. A Comparison between Stern
Trawlers and Longliners". M.Sc. Thesis, Norwegian College of Fisheries
Science Tromso, Norway, 1984 (in Norwegian).
Arnarson, I., "A Decision Support System for Fishing Skippers". Technical Report,
11-1 Trondheim, Norway, 1986 (in Norwegian).
Arnarson, I.,
Jensson, P.,
"Simulation Model of Factory Trawler Operation".
Unpublished working paper, Agriculture and Resource Economics, Oregon State
University, 1991.
Arnarson, I., Johnston, R.S., "Modelling groundfish supply. A Linear Programming
approach with application to Newfoundland", Econometric Modelling of
Groundfish Supply, edited by Shrank, W. and Roy, N. Kluwer Academic
Publishers, 1991.
Derman, C. et al., A Guide to Probability Theory and Application, Holt, Rinehart and
Winston, New York, 1973.
Digernes, T., "An Analytical Approach to Evaluating Fishing Vessel Design and
Operation". Doctorial dissertation, Norwegian Technological College,
Trondheim, Norway, 1984 (in Norwegian).
Gunn, E.A. et al., "Planning harvesting and marketing activities for integrated fishing
firms under an enterprise allocation scheme", European Journal of Operational
Research, 55, 243-259 Elsevier Science Publisher B.V. North Holland, 1991.
Hauss, H.H., Fresh fish - quality and quality changes, Food and Agriculture
Organization of the United Nations, Danish International Development Agency,
Rome, 1988.
62
Jensson, P., "Coordination of Fishing and Fish Processing". Unpublished paper,
Engineering Faculty, University of Iceland, 1990.
Jensson, P., "Daily production planning in fish processing firms". European Journal of
Operational Research, 36, 410-415, Elsevier Science Publisher B.V. North
Holland, 1988.
Mikalsen, B. and T. Vassdal, "A short term production planning model in fish
processing", in (Eds) Haley, K.B., Applied Operations Research in Fishing,
Plenium Press, New York, NY, 1981.
Sigvaldason, H. et al., "A Simulation Model of a Trawler as a Raw Material Supplier for
Freezing Plants in Iceland", Technical report, University of Iceland, 1969 (in
Icelandic).
Teitsson, A., "Processing onboard on Factory Trawlers". Technical Report, Icelandic
Fisheries Laboratories, 1990 (in Icelandic).
APPENDICES
APPENDIX A
SIMULATION MODEL: PROGRAM LISTING AND
EXAMPLE OUTPUT REPORT
63
Appendix A-i: Flowcharts
Program logic
START
Set variables egad to
zero rod
mammas
<FOR aII Maims sad>
al days
%Mem Go Catch();
patents end amipn
catch to die amid
< FOR al days
>
FOR al trawlers
Sum op for daily report,
trip report aid oshadde
Print out reports
END OF PROGRAM
>
64
Decision Rule logic
Fundion DECISION°
START
IoniaIke pounionas
<
FOR all moaners
Find max calk max
nipdaya, min quality and
no. of trawlers with same
max trip days.
No wed to assign
trawler to landings
_of
RETURN to calling
function
)
65
Appendix A-2 : Program listing
/*****************
'include
*include
*include
*include
MODULE TOGARI-6.0
***********#*****/
(main program)
<stdlib.h>
<stdio.h>
<math.h>
<console.h>
*define
*define
DRYS
SHIP
/* This Is a copy of the main progras
/* which Is located In the nodule
It will appear again
/* Togar1-15.c.
/* In the nodule at its correct place
360
4
/*************************
*/
*/
*/
*/
**************************/
MAIM PROGRAM
main()
char
int
int
FILE
char
answer = 0;
td_catch;
control, quota, ytd_catch[SHIP], tripcatch[SHIP];
*consolePtr;
c;
gFirstPtr = NULL;
gLastPtr = HULL;
*/
/* Initialize variables
/* Set parameters and values */
Zero();
Data();
gDay = 0;
gShip = 0;
td_catch = 0;
for( gShip = 0; gShip < SHIP; gShip++
)
ytd_catch[gShip] = 0;
tripcatchIgShipl = 0;
}
srand( clock() );
/*
/*
Go_Catch();
/*
Go_Status();
/*
Summary();
printf("Do you want doily report (y/n) ? ");
scanf("Xlc",&answer);
/*
cecho2file("Trawl_output",0,stdout);
if(answer == 'y')
/*
Report();
/*
List();
/*
Schedule();
/*
Print_Inv();
}
Initialize random generator */
Generate catch and catch combination */
Control trawler operation */
Summarize results for report generator*/
Print reports to FILE:
Print
Print
Print
Print
Trawl_output */
daily report
trip summary report
landing schedule
inventory report
*/
*/
*/
*/
/*********************************************************************************/
66
/*****************
*include
*include
*include
*include
*define
*define
MODULE TOGRRI-8.0
*****************/
<stdlib.h>
<stdio.h>
<math,h>
<console.h>
DAYS
SHIP
360
4
struct TripInfo
{
trawler;
tripnum;
tripend;
int
triplength;
int
trip_cod;
float
trip_had;
float
float
trip_per;
trip_pol;
float
tripcatch;
int
*next;
struct Tripinfo
*gFirstPtr, *gLastPtr;
int
int
)
gDay, gShip, gYtdDays[SHIP];
gCod[DAYS][SHIP], gHad[DRYS][SHIP], gPer[DAYS][SHIP], gPol[DRYS][SHIP];
gYtd_cod[SHIP],gYtd_had[SHIP],gYtd_per[SHIP],gYtd_pol[SHIP];
gDayCat[DAYSIISHIP], gControl[DAYS][SHIP], gYtdtr1p[SHIP], gYtd_Catch[SH1P];
gTd_trip[SHIP], gA_shore[SH1P], gfishing[SHIP],gYtdtrip[SAIP];
gTripCatch[SH1P], g_occupled;
gcluota[SHIP], gCapacity[SHIP], glnventory, gInv_status[DAYS], gCur_prodrate;
int
float
float
int
int
int
int
/********************
INITIALIZING UFIRIABLES
Zero()
{
for( gDay = 0; gDay < DAYS; gDay++
)
{
for( gShip = 0; gShip < SHIP; gShip++ )
{
gCod[gDay][gShip] = 0;
gHad[gDay][gShip] = 0;
gPer[gDay][gShip] = 0;
gPol[gDay][gShip] = 0;
gDayCat[gDay][gShip] = 0;
gControl[gDay][gShip] = 0;
gTd_triggShip] = 0;
gTripCatch[SHIP] = 0;
gA_shore[gShip] = 0;
gfishing[gShip] = 0;
gYtdtrip[gShip] = 0;
gYtd_cod[gShip] = 0;
gYtd_had[gShip] = 0;
gYtd_per[gShip] = 0;
gYtd_pol[gShip] = 0;
gYtd_Catch[gShip] = 0;
}
}
}
*****************************/
67
/***************************
******************************/
DATA FOR TRAWLER
Data()
{
char
svar;
gOuota[0] - 3317;
gOuota[1] = 3250;
Ouota[2] - 2978;
gluota[3] = 4154;
gCapacity[0] = 195;
gCapacity[1] = 190;
gCapacIty[2] = 200;
gCapacity[3] = 250;
glnventory = 300;
gCur_prodrate = 55;
}
/******************* Finds if trawler has landingpermit or not *******************/
LandPerm()
{
weekday, mintrip, maxtrlp, landpermit;
int
mintrIp - MinDay();
maxtrlp = MaxDay();
weekday - FindDay( gDay );
landpermit - 0;
If(( weekday == 0 )
landpermit = 0;
else
II
/* Find the day of the week
*1
( weekday == 6 ))
{
if( gcluota[gShip] > gYtd_Catch[gShip] + 30
/* Is
)
there enough quota left
for fishing */
{
if( gCapacity[gShip] > gTripCatch[gShip] + 15
)
/* Check on capacity *1
{
If(( gTd_trip[gShip] >= mintrip ) && ( gTd_triggShip] < maxtrip ))
{
if( g_occupled == 0
landpermit = 1;
else
landpermit = 0;
)
/* IF landing facility is not occupied */
*/
/* then permit landing
/* ELSE not (only one trawler at a tIme)*/
}
else
/* IF trawler has reached its max then land
{
if( gTd_trip[gShip] >= maxtrip )
landpermit = 1;
else
landpermit . 0;
}
}
else
landpermit =
1;
landpermit =
1;
}
else
}
return (landpermit);
}
*1
68
/******************* Checks whether to assign catch to trawler or not ************/
/*******************
************/
and controls operation of the trawler
Go_Status()
flag, stress, rawMaterial, fishing, weekday, landpermit,
int
for( gDay = 0; gDay < DRYS; gDay++
landrequire[SHIP];
)
/* Set landing unit available */
/* This loop decides what trawler */
/* does each day (land/fish) */
g_occupled = 0;
for( gShip = 0; gShip < SHIP; gSh1p++ )
landpermit = LandPerm();
/* Find
if(( landpermit == 1 ) && (g_occupied == 0))
landrequire[gShip] = Go_land();
if(gQuota[gShip] <= gYtd_Catch[gShip])
/*
landrequire[gShip] = 1;
if(gCapacity[gShip] <= gTripCatch[gShip])
landrequire[gShip] = 1;
/*
If trawler has landing permit*/
Returns
1
if ship to land, else 0
Returns
1
if ship to land, else 0
else
/* Trawler has no permit, set to 0 */
landrequire[gShip] = 0;
if( landrequire[gShip] == 1)
g_occupled = 1;
for( gShip = 0; gShip < SHIP; gShip++ )
if( gDay <
/* On first day (0) variables initialized */
1)
/* this happens only once
{
*/
gR_shore[gShip] = 0;
gTd_trip[gShip] = 0;
if((landrequire[gShip] == 0) && (gR_shore[gShip] == 0))
/* IF trawler required not to land and he */
/* is
gfishing[gShip] =
not landing,
he keeps on fishing
1;
/* ELSE he is landing */
else
gfishing[gShip] = 0;
if( landrequire[gShip] ==
1
)
/* This is to prevent balancing the */
/* inventory on the second day*/
flag = 1;
Inv_update( flag, gShip );
/* Update inventory balance */
}
If((gfishIng[gShip] == 0) && (gR_shore[gShip] < 2 ))
If(gR_shore[gShip] == 0)
/*Set landing unit busy on first day of landing
g_occupied = 1;
else
g_occupied = 0;
if( (DRYS - gDay) < MaxDay())
gfishing[gShip] = 0;
gR_shore[gShip] = 1;
/* on second day it is free again */
/* IF there are less than eight days */
/* left of period trawler does not go */
*/
/* out fishing aglan
*/
69
else
{
gfishing[gShip] = 0;
gR_shore[gShip]++;
/* Count landing days */
stress - TimeUalue( gShIp );
rawMaterial - Inv_Capacity(0);
if(( stress == 0 ) II ( rawMaterial -- 0 ))
*/
/* Check on timevalue and inventory
gR_shore[gShIp ] = 1;
*/
/* stress: if 0 then trawler short
on quota and will stay in harbour one more day */
/* rawMaterial: if 0 then plant has enough raw
day *1
/* material and trawler will stay In harbour
*1
I
}
}
/* ELSE the trawler is able to go fishing again
else
*/
{
gfishing[gShip] = 1;
gR_shore[gShip] = 0;
}
/* Set contra/status = status */
gControl[gDay][gShip] = gfishing[gShip];
if(gControl[gDay][gShip] == 1)
{
/* Counts the days trawler has spent on sea */
gTd_trip[gShlp]";
/* Accumulates the tripcatch */
gTripCatch[gShip] += gDayCat[gDay][gShip];
gYtd_Catch[gShip] += gDayCat[gDay][gShip];
/* Accumulates the yeorcatch */
}
else
1
/* Set counter to 1
/* Set trip amount to 0
gTd_trip[gShip] = 0;
gTripCatch[gShip] = 0;
*/
*/
}
if( gDay < SHIP )
If(( gDay != gShip ) && ( gShip > gDay ))
{
/* This routine is so that only */
/* one trawler goes out per day */
/* at the beginning of the year */
gControl[gDay][gShip] = 0;
gTripCatch[gShip] = 0;
gYtd_Catch[gShip] = 0;
}
if( gDay == gShip )
gTd_trip[gShip] = 1;
1
gShip - 0;
flag = 0;
Inv_update( flag, gShip );
gInv_status[gDay] = glnventory;
/* Set gShip = 0 to avoid dividing error */
/* At end of each day, inventory is depleted */
/* with that day production rate
}
}
/****************************
REPORT SUBROUTINE
****************************/
void Report()
{
0 0 0
printf("
0 0 0
printf("\n");
printf(" Day
Trawler
Cod
Haddock
.....
=
printfi"
for( gDay =0; gDay < DRYS; gDay++ )
Pearch
== ==
\n");
Pollock
Total\n");
\n");
/* Counts through the days
*1
{
for( gShip =0; gShip < SHIP; gShip++
{
switch( gControl[gDay][gShip]
{
case 0:
)
)
/* Steps through the trawlers *1
ml
70
printf("X3d X6d
Trawler is landing catch\n", g0ay+1,gShip+1);
break;
case 1:
printf("X3d X6d X(1.1f X7.1f ULU X7.1f Xl1d\n',
gDay+1,gShip+1, gCod[gDay]EgShip],
gHad[gDay]IgShip], gPer[gDay][gShip],
gPol[gDay][gShipl, gDayCat[gDayl[gShip]);
)
}
printfi"
)
printW\n");
}
/***********************
SUMMARIZE RESULTS
*****#**********************/
Summary()
{
struct Tripinfo
*tripPtr;
int
daycount, dayOnSea, tripcount, trip_catch,ytd_catch;
float
codcount, hadcount, percount, polcount;
float
ytd_cod, ytd_had, ytd_per, ytd_pol;
codcount = 0;
hadcount = 0;
percount = 0;
polcount = 0;
ytd_cod = 0;
ytd_had = 0;
ytd_per = 0;
ytd_pol = 0;
for( gShip = 0; gShip < SHIP; gShip++
/*
)
Looping for each trawler */
{
daycount = 0;
dayOnSea = 0;
tripcount = 0;
trip_catch = 0;
ytd_cod = 0;
ytd_had = 0;
ytd_per = 0;
ytd_pol = 0;
ytd_catch = 0;
for( gDay = 0; gDay < DRYS; gDay++ )
/* Total quantity of different species */
*/
/* for looped for each trawler
{
/* Is trawler landing */
if(gControl[gDay]EgShIal == 0)
{
if( gDay == 0 )
gControl[gDay-ll[gShiP] = 0;
/*
IF it is 1st day then set = 0 */
HU gDay < SHIP ) && (gControl[gDay-1]EgShIp] == 0))
/* Do not count first days year as trip */
{
daycount = 0;
trip_catch = 0;
codcount = 0;
hadcount = 0;
percount = 0;
polcount = 0;
)
else
/*
How is OK to count trips and data */
{
if( (gControl[gDay][gShip] == 0) && ( geontrol[gDay-ll[gShip] == 1))
(
tripcount++;
tripPtr = malloc( sizeof(struct Tripinfo) );
If ( tripPtr == MULL )
{
/* First day ashore */
/* Counts number of trips */
/* Allocate memory */
71
printf('Out of memory');
exit(0);
/*
/*
}
tripPtr->trawler = gShIp + 1;
tripPtr->tripnum = trIpcount;
trIpPtr->trIpend - gDay;
trIpPtr->trIplength = daycount;
trIpPtr->trIp_cod = codcount;
tripPtr->trip_had = hadcount;
tripPtr->trip_per . percount;
tripPtr->trip_pol = polcount;
trIpPtr->tripcatch = trip_catch;
MoveHext(tripPtr);
/*
/*
This is FIRST LANDING DRY */
Number of trawler */
Trawler comes in on first landing day*/
Update values for trip */
}
if( (gControl[gDayligShIp] == 0) && ( gControl[gDay-11[gShip] == 0))
(
daycount = 0;
trip_catch = 0;
codcount = 0;
hadcount = 0;
percount = 0;
poi count .0;
*/
all trip-variables are set to 0 */
/* On SECOND LANDING DRY
/*
1
}
}
else
(
daycount++;
dayOnSea++;
codcount
geod[gDaylEgShIpl;
hadcount
gHad[gDayllgShIpl;
percount
gPer[gDay] [gShIpl;
poi count
gPol[gDay][gShip};
ytd_cod
gCod[gDay][gShip};
ytd_had
gHad[gDay][gShip];
ytd_per
gPer[gDay][gShip};
ytd_pol
gPol[gDay]EgShiP};
trip_catch += gDayCat[gDay]IgShipl;
ytd_catch += OnCat[gDay][gShipl;
/*
/*
*/
Count days on trip
Update and count for each day */
}
1
gYtdDays[gShip] -gYidtrIpEgShip} =
gYtd_cod[gShip] =
gYtd_had[gShip] =
gYtd_per[gShip] gYtd_pol[gShip] =
gYtd_Catch[gShip]
dayOnSea;
tripcount;
ytd_cod;
ytd_had;
ytd_per;
ytd_pol;
= ytd_catch;
/* Read in cumulated data on each trawler */
/* Total number of days spent on sea fishing*/
/*
Total number of full trips during period */
Total quantity of different species */
/*
Total catch over the period */
/*
}
1
/*************************
MoveNext( struct Tripinfo
Move to next struct
*curPtr)
(
( gFirstPtr == HULL )
gFIrstPtr = curPtr;
else
gLastPtr->next = curPtr;
If
gLastPtr = curPtr;
curPtr->next = NULL;
1
***************************/
72
/********************
LIST AND PRINT SUMMARY RESULTS
***********************/
void List()
(
struct TrIpInfo
*curPtr;
tempShip - 0, tempTripcount = 0;
int
If( gFIrstPtr == NULL )
{
printf("No data entered yet\n");
}
else
{
printf("\n");
printf("
printf("\n");
curPtr = gFirstPtr;
printf(" Trawler Trip*
Total\n');
TRIP SUMMARY FOR EACH TRAWLER \n");
Day-in
Days
Cod
Haddock
Pearch
Pollock
printfr---"
1
while{ curPtr != NULL
)
(
printf("X4d %811 X6d red %6,1f %6.1f %7,1f %13,1f %6d\n", curPtr->trawler,
curPtr->tripnum,curPtr-)tripend+1,curPtr->triplength, curPtr->trip_cod ,
curPtr->trip_had,curPtr->trip_per, curPtr->trip_pol, curPtr>tripcatch);
tempShip = curPtr->trawler;
tempTripcount = curPtr->tripnum;
curPtr = curPtr->next;
if(tempShip != curPtr->trawler)
{
printfr
----\n");
printfr Total %5d %13d %6.1f %6,1f %7.1f %8.1f %6d\ntempTripcount,
etdDays[tempShip - 1], gYtd_cod[tempShip - 1], gYtd_had[tempShip gYtd_per[tempShip - 1], gYtd_pol[tempShip - 11, gYtd_Catch[tempShip
printf("\n");
if(curPtr != NULL)
1
printf(" Trawler
Trip*
Day-in
Days
Cod
Haddock
Pearch
Pollock
Total\n");
\
printf("
n');
}
}
}
1
}
/*****************
SCHEDULE OF TRAWLERS LISTED AND PRINTED
*******************/
Schedule()
{
printf("XmtwtfmtwtfUmtwtfUmtwtfUmtwtfUmtwtf}0(mtwtfUmtwtfUmtwtfM\n");
printf('
for( gShip = 0; gShip < SHIP; gShip++
{
for( gDay = 0; gDay < 63; gDay++
)
(
If( gControl[gDay][gShip] == 0
printf('-');
else
printf("f");
)
\e};
)
73
}
prIntf("\n");
1
printf("\n");
if(DRYS > 62)
{
printf('XmtwtfUmtwtfUmtwtfUmtwtfUmtwtfUmteMmtwtfXXmtwtfUmtwtfX\n");
printf('
for( gShip = 0; gShIp < SHIP; gShip++ )
\n");
{
for( gDay = 63; gDay < 126; gDay++
)
{
If( gControl[gDayl[gShIp] == 0
)
prIntf('-");
else
printf("f");
printf(\n");
1
)
prIntf('\n');
}
If(DRYS > 125)
{
printf('XintwtfUmtwtfUmtwtfUmtwtfUmtwtfXXmtwtfUmtwtfUmteMmtwtfX\n');
printf('
for( gShip = 0; gShIp < SHIP; gShIp++ )
(
for( gDay = 126; gDay < 189; gDay++ )
{
If( gControl[gDayl[gShIp] == 0
)
printf('-');
else
printf("f');
1
printf("\n");
}
printf("\n");
}
If(DRYS > 188)
{
printf("XmtwtfUmtwtfnmtwtfnmtwtfUmtwtfUmtwtfUmtwtfMmtwtfUmtwtfX\n");
printf('
\n');
for( gShip = 0; gShip < SHIP; gShip++ )
(
for( gDay = 189; gDay < 252; gDay++
)
(
If( geontrol[gDay][gShip] == 0
prIntf('-');
)
else
printf(*f");
1
prIntf("\n');
}
printf("\n');
1
If(DAYS > 251)
{
prIntf("XintwtfUmtwtfUmtwtfUmtwtfUmtwtfUmtwtfUmtwtfXXmtwtfUmtwtfX\n");
printf('
\n");
for( gShip = 0; gShlp < SHIP; gShIp++ )
{
for( gDay = 252; Oily < 315; gDay++
{
If( gControl[gDay][gShip] == 0
printf("-');
else
)
)
74
printWf");
printf("\n");
printfr\n");
If(DRYS > 314)
printf("XmtwtfUmteMmtwtfUmtwtfUmtwtfUmtwtfUmtwtfXX\n");
printfr
for( gShip = 0; gShip <
SHIP; gShip++ )
{
for( gDay
315; gDay < 361; gDay++ )
1
if( gControl[gDay][gShip] == 0
printf('-');
)
else
printf("f");
printf("\n');
/***********************
************************/
MAIM PROGRAM
main()
char
int
Int
FILE
char
answer = 0;
td_catch;
control, quota, ytd_catch[SHIP], tripcatch[SHIP];
*consolePtr;
c;
gFirstPtr = HULL;
gLastPtr = HULL;
Zero();
Data();
gDay = 0;
gShip = 0;
td_catch = 0;
*/
/* Initialize variables
/* Set parameters and values */
for( gShip = 0; gShip < SHIP; gShip++ )
ytd_catch[gShip] = 0;
tripcatch[gShip] = 0;
/*
srand( clock() );
1*
Go_Catch();
/*
Go_Status();
1*
Summary();
printf("Do you want daily report (yin) ? ");
scanf("%lc",&answer);
/*
cecho2file("Trawl_outpur,O,stdout);
if(answer == 'y')
Report();
List();
Schedule();
Print_Inv();
/*
/*
/*
/*
Initialize random generator */
Generate catch and catch combination */
Control trawler operation */
Summarize results for report generator*/
Print reports to FILE: Trawl_output */
Print
Print
Print
Print
daily report
trip summary report
landing schedule
inventory report
*/
*/
*/
*/
/*********************************************************************************/
75
/****************
MODULE GEHCRTCH.0
*****************/
*include <stdlib.h>
*include <stdio.h>
slnclude <math,h>
*define
*define
DAYS 360
SHIP 4
extern
Int
gDay, gShip;
extern float
gUld[DAYS][SHIP}, gHadIDAYSHSHIPJ, gPerIDAYSl[SHIP],
gPolIDAYSIESHIP];
extern
int
gDayCatEDAYSHSHIP], gYtd_catchISHIPLgTripCatch, gCapacity;
/****************************
Month(
FIND MONTH OF YEAR
*****************************/
Int caller )
{
int
float
day, prodrate;
pro_sh_cr,mean, catchrate, var;
If( gDay <= 31
)
/* January */
{
catchrate = 858.5;
var = 7225.1;
pro_sh_cr = 0.8560;
prodrate = 100;
}
If(( gDay > 31) && (gDay <= 59))
/* February */
(
catchrate = 943;
var = 62531.9;
pro_sh_cr = 0.9406;
prodrate = 107;
}
if(( gDay > 59) && (gDay <= 90))
/* March */
{
catchrate = 1177.7;
vor = 37863.9;
pro_sh_cr = 1.1751;
prodrate = 121;
}
if(( gDay > 90) && (gDay <= 120))
/* April */
{
catchrate = 1139.7;
var = 54720.7;
pro_sh_cr = 1.1372;
prodrate = 145;
}
if(( gDay > 120) && (gDay <= 151)}
/* May */
(
catchrate = 1369.5;
var - 113849.1;
pro_sh_cr - 1.3665;
prodrate = 155;
}
if(( gDay > 151) && (gDay <= 181)}
{
cotchrate = 1184.7;
var - 32147.5;
pro_sh_cr = 1.1821;
prodrate = 165;
}
/* June */
76
if(( gDay > 181) && (gDay <= 212))
/* July */
{
catchrate = 1256.5;
var = 38649.1;
pro_sh_cr = 1.2537;
prodrate = 135;
}
if(( gDay > 212) && (gDay <= 243))
/* August */
{
catchrate = 1385.3;
vor = 90709.9;
pro_sh_cr = 1.3823;
prodrate = 160;
}
if(( gDay > 243) && (gDay <= 273))
/* September */
{
catchrote = 1020.2;
var = 25223.8;
pro_sh_cr = 1.0180;
prodrate = 145;
}
if(( gDay > 273) && (gDay <= 304))
/* October */
{
catchrate = 941.8;
vor = 15752.6;
pro_sh_cr = 0.9397;
prodrate = 130;
}
if(( gDay > 304) && (gDay <= 334))
/* November */
1
cotchrate = 882.7;
var = 17698.7;
pro_sh_cr = 0.8808;
prodrate = 107;
}
if(( gDay > 334) && (gDay < 365))
/* December */
{
catchrote = 799.2;
vor = 19213.0;
pro_sh_cr = 0.7974;
prodrate = 100;
}
if(caller == 0)
/* To identify calling function and return right value */
{
mean = catchrate;
return( mean );
/* Return catch rate to CatchGenerator */
}
if(caller == 1)
{
/* Return seasonal fluctuation to Production rate */
return(prodrate);
}
}
/*******************
Catch Generator
***********************/
Go_Catch()
{
float
int
random, sum, norm, temp,
catchrote, cat_coeff, partl, part2, port3;
I,
j, td_catch, average[DAYS];
for( gShip = 0; gShip < SHIP; gShip++ )
(
for( gDay = 0; gDay < DAYS; gDay++ }
{
average[gDay] - 0;
1
77
for(
I
= 0;
I
< 3;
i++
)
{
cat_coeff = 0;
for( gDay = 0; gDay < DRYS; gDay++ )
{
random = 0;
sum = 0;
norm = 0;
temp = 0;
td_catch = 0;
partl = 0;
part2 = 0;
part3 = 0;
catchrate = Month(0);
for( j = 0; j < 12; j++ )
/* Find avg. catch rate for particular month */
f
random = rand();
sum = sum + random/32768;
/* Generate normal distribution
*1
1
norm = sum - 6;
partl = 0.5233 * catchrate;
part2 = log(part1);
part3 = 0.8326 * norm;
temp = exp(part2 + part3);
cat_coeff = 0.26 * cat_coeff + temp;
td_catch = floor(cat_coeff * 12.24/1000);
if(td_catch < 0)
td_catch = 0;
average[gDay] += td_catch;
If(
== 2
i
)
f
td_catch = flooriaverage[gDay1/3);
gDayCat{gDayligShip] = td_catch;
CatchComb( td_catch );
/* Calculate the average catch rate */
*/
/* for three runs
}
1
}
1
1
/***********************
CatchComb( int td_catch
Generate catch combination
*************************/
)
{
long
int
random;
partstart;
random = rand();
partstart = (random * 50)/32768;
/* Generate number between 0 and 50 */
gCod[gDay][gShip] = td_catch * (partstart + 25)/100; /* cod between 25 and 75% */
gHad[gDay][gShip] = 0;
gPer[gDay][gShip] = 0;
gPol[gDay][gShip] = td_catch - gCod[gDay]EgShip] - gHad[gDay]EgShip} gPer[gDay][gShip];
}
/*********************************************************************************/
78
/****************
*****************/
MODULE FINDORY.0
*include <math,h>
FindDay( int gDay
int
double
)
weekday = 0;
divide = 0;
if( gDay < 7 )
weekday = gDay;
else
/* Find what weekday it is */
/* Sunday = 0, Monday =
/* Wednesday = 3,
/* Friday = 5,
1,
Tuesday = 2 */
Thursday = 4
Saturday = 6
*/
*/
{
if( gDay == 7 )
weekday = 0;
if( gDay > 7
)
divide = floor(gDay/7);
weekday = gDay - (7 * divide);
return( weekday );
/* Return number of weekday
*
1
/*********************************************************************************/
/****************
/*******************
MODULE MIMMRXDRY.0
Find minimum cycletime
*****************/
*********************************/
MinDay()
int
long
trawlcap,inventory,mincap,period,mincycle;
plant_tot, trawl_tot;
trawlcap = 20;
/* trawler capacity per day */
/* max amount of inventory plant can hold */
inventory = 20;
mincap = 20;
/* minimum capacity of plant */
period = 14;
/* scheduling period */
plant_tot = (mincap + inventory)*period;
/* total plant capacity */
trawl_tot = trawlcap * SHIP;
/* total traweler capacity */
mincycle = floor(plant_tot/trawl_tot);
/* min cycletime */
mincycle = 5;
/* elncycle set to fixed value */
return( mincycle );
/*******************
Find maximum cycletime
*********************************/
MaxDay()
{
int
long
trawlcap,inventory,maxcap,period,maxcycle;
plant_tot, trawl_tot;
/* trawler capacity per day */
trawicap = 20;
inventory = 20;
/* max amount of inventory plant can hold */
maxcap = 50;
/* maximum capacity of plant */
period = 14;
/* scheduling period */
/* total plant capacity */
plant_tot = (maxcap + inventory)*period;
trawl_tot = trawlcap * SHIP;
/* total traweler capacity */
maxcycle = floor(plant_tot/trawl_tot);
/* max cycletime */
/* maxcycle set to fixed value */
maxcycle = 15;
return( maxcycle );
1
/*********************************************************************************/
79
/*****************
*****************/
MODULE DECISIOH.0
'Include <stdlib.h>
'Include <stdio.h>
'include <math.h>
DRYS
SHIP
'define
'define
extern
extern
int
int
360
4
gTripeatch[SHIP], gTd_trip[SHIP], gDay, gShip;
glnventory, gCur_prodrate, g_occupled;
/************************
Go_land()
DOES TRAWLER GO LANDING
************************/
{
maxtrip, weekday, landpermit, numship, goland;
maxtripday, maxtripship, maxeatch, maxeatchship, costship,
minQualityship, compete, bypass;
minQuality, costlndex, quality, q_Index;
int
int
int
float
goland = 0;
maxtrip = MaxDay();
weekday = FindDay( gDay );
numship = 0;
tempory;
/* Find max allowed day on sea */
*/
/* Find the day of the week
maxtripday = gTd_triggShip];
maxtripship = gShip;
maxeatch = 0;
maxCatchship = gShip;
minQuality = 100;
minQualityship = gShip;
/* Set base quality equal to 100 */
costlndex = gTripeatch[gShipl/gTd_triggShipl;
costship = gShip;
compete = 0;
tempory = gShip;
for( gShip = 0; gShip < SHIP; gShip++
)
{
landpermit = LandPerm();
if(( landpermit ==
) && ( g_occupled == 0 ))
1
{
numship++;
if( costlndex < gTripeatch[gShip]/gTd_triggShip])
(
costlndex = gTripCatchIgShip1/gTd_triggShip];
costship = gShip;
/* find ship with highest catchrate */
1
q_Index = Quality( gShip );
quality = q_indez/100;
if(quality < minQuality )
(
minQuality = quality;
minQualityship = gShip;
/* find ship with lowest quality */
1
if( maze...itch < gTripeatch[gShipl )
1* find ship with most catch */
{
maxeatch = gTripCatch[gShiPl;
maxeatchship = gShip;
1
if( maxtripday < gTd_trip[gShipl
{
maxtripday = gTd_triggShip];
maxtripship = gShip;
}
)
/* find ship with max days on sea */
80
If( gl.d_trip[gShip] >
compete++;
11
)
/* count competing trawlers */
gShip = tempory;
/* set gShip back to correct value */
if( maxtripday < 7
)
If(gInventory < (1.5 * gCur_prodrate )) /* will there be AM shortage
If( weekday == 5
goland - 0;
else
)
If( gShip == maxCatchship )
goland = 1;
else
goland = 0;
1
else
goland = 0;
if( maxtrIpday > 11
)
If(gInventory < (1.5 * gCur_prodrate ))
if(( gShip == maxtripship )
II
/* will there be AM shortage
( gShip == minClualityship))
If( abs(gId_trip[maxtrIpship] - gTd_trip[minQualityship]) < 2)
if(gShip == minQualityship)
goland = 1;
else
goland = 0;
else
if(gShip == moxtripship)
goland = 1;
else
goland - 0;
else
goland - 0;
else
If( compete >
1
)
bypass = 0;
if(( weekday == 2) && (compete == 4))
bypass = 1;
If(gShip == maxtripship)
goland = 1;
else
goland = 0;
81
If(( weekday == 3) && (compete >= 3))
{
bypass = 1;
If(gShip == maxtrlpship)
goland = 1;
else
goland = 0;
}
HU weekday == 4) && (compete >= 2))
{
bypass = 1;
If(gShip == maxtripshlp)
goland = 1;
else
goland = 0;
1
If(( weekday == 5) && (compete > 1))
{
bypass = 1;
if(gShip == maxtripship)
goland = 1;
else
goland = 0;
}
if(( maxtrip > 13
&& ( bypass == 0))
)
/* IF 14 or 15 then land immy */
{
bypass = 1;
if(gShip == maxtripship)
goland = 1;
else
goland - 0;
)
If( bypass == 0
goland = 0;
)
}
else
{
If( gShip == maxtripship )
{
bypass = 0;
if(( weekday == 4)
11
( weekday == 5))
{
bypass = 1;
if( maxtripday > 12
goland = 1;
else
goland = 0;
)
}
If(( maxtripday == 14
{
bypass =
goland =
1;
1;
}
if( bypass == 0
goland = 0;
}
else
goland = 0;
}
}
1
)
)
II
( maxtripday == 15))
82
if(( maxtripday > 6 ) && ( maxtripday < 12 ))
(
iggInventory < (1.5 * gCur_prodrate )) /* will there be AM shortage *1
(
if( weekday == 5
goland = 0;
else
)
{
If( gShip == minQualityship )
goland = 1;
else
goland = 0;
}
}
else
{
if{( weekday == 4) && ( maxtripday == 11))
1
if( gShip == maxtripship )
goland = 1;
else
goland = 0;
1
else
goland = 0;
}
}
return( goland );
}
/*********************************************************************************/
83
/*******************
MODULE OURLITY.0
*********************/
include <stdlib.h>
'include <stdio.b>
include cmath.h>
360
DRYS
SHIP
"define
*define
extern
int
4
gTripCatchISHIP], gTd_trip[SHIP], gDayCat[DAYSJ[SHIP], gDay, gShip;
FUNCTION THAT CALCULATES RELATIUE QUALITY
/****************
Quality( int gShip )
*********************/
i,
d. 0, q_Index;
ratio, acc_quality, hlutfall;
int
float
d = gDay - gTd_tria gShip ]
/* to correct tripcount and day discrepancy */
;
0 = 0;
acc_quality = 0;
hlutfall = 0;
ratio = 0;
for(
i
= (g0ay-1);
i
> (d-1)
;
)
{
D++;
hlutfall = gDayCat[i][gShip],/gTripCatch[gShip];
if(( D > 0 ) && ( D < 7 ))
ratio = hlutfall * 100;
if( D == 7
)
{
ratio = hlutfall * 99
}
if( 0 == 8
)
{
ratio = hlutfall * 97
if( 0 == 9
)
ratio = hlutfall * 95;
if( D == 10
)
{
ratio = hlutfall * 91;
if( 0 == 11
)
ratio = hlutfall * 85;
if( D == 12
)
{
ratio = hlutfall * 78;
if( D == 13
)
ratio = hlutfall * 70;
if( 0 == 14
)
{
ratio = hlutfall * 61;
if( 0 == 15
)
{
ratio = hlutfall * 50;
acc_quality +
ratio;
q_Index = acc_quality * 100;
return ( q_Index );
/***************************************************************************************/
84
/****************
MODULE PRODUCTIOH.0
*****************/
*include <stdlib.h>
*include <stdio.h>
*include <math.h>
*define
*define
DAYS
SHIP
extern
extern
extern
360
4
gTripCatch[SH1P], gTd_trip[SHIP],gYtd_Catch[SHIP], gOuota[SH1P];
int gDay, gShip, ginventory, gInv_status[DAYS], gCur_prodrate;
float gCod[DAYSUSHIP], gHad[DAYS][SHIP], gPol[DAYSIISHIN,
int
gPer[DAYSIISHIPL
/**************** FUNCTION THAT CALCULATE PLANT PRODUCTION RATE *****************/
PlantProd( int gShip )
{
tripcod, triphad, trippol, tripper;
i,
d, prod_rate,chance;
rate_cod, rate_had, rate_pol, rate_per;
inv_status,
base_cod,
base_pol;
ratio_cod, ratio_had, ratio_pol, ratio_per;
float
int
double
int
float
tripcod = 0;
triphad = 0;
trippol = 0;
tripper = 0;
inv_status = Inv_Capacity(1);
switch( inv_status )
(
case 2:
base_cod
base_pol
break;
case 3:
base_cod
base_pol
break;
case 4:
base_cod
base_pol
break;
case 5:
base_cod
base_pol
= 18;
= 26;
= 27;
= 38;
= 35;
= 42;
= 47;
= 47;
}
chance =
rate_cod
rate_had
rate_pol
rate_per
Nonth(1);
= floor(base_cod * chance/100);
= floor(35 * chance/100);
= floor(base_pol * chance/100);
= floor(70 * chance/100);
d = gDay - gTd_triggShip];
for(
1
= (gDay-1);
i
> (d-1);
I--
{
tripcod
triphad
trippol
tripper
+=
+=
+=
+=
)
/* adjust tripcount and daycount */
/* to prevent discrepancy */
gCod[i][gShip];
gHad[1][gShip];
gPol[i][gShip];
gPer[i][gShip];
}
if(( gTripCatch[gShip] == 0
)
II
(tripcod == 0 ))
(
gTripCatch[gShip] = 1;
/* this is to avoid dividing by 0 *1
prod_rate = 1;
printf("Something wrong");
}
85
/* find weighted ratio of the catch */
else
ratio_cod
ratio_had
ratio_pol
ratio_per
prod_rate
= tripcod/gTripCatch[gShip];
= triphad/gTripCatch[gShip];
= trippol/gTripCatch[gShip];
= tripper/gTripCatch[gShip];
= floor( ratio_cod * rate_cod + ratio_had * rate_had +
ratio_pol * rate_pol + ratio_per * rate_per);
return(prod_rate);
/*************** FUNCTION THAT UPDATES INVENTORY STATUS
Inv_update( int flag, int gShip )
************************/
/* Flag tells whether to add or deduct from inventory */
newinventory, new_prodrate, get_prodrate, weekday;
int
weekday = FindDay( gDay );
if( flag == 0
/* flag = 0 -- there is simple deduction
)
if( weekday != 0
)
/* on all days except Sunday deduct
if((gInventory - gCur_prodrate) < 0)
glnventory = 0;
else
glnventory -= gCur_prodrate;
/* Deduct daily production rate from inventory
else
/* flag I= 0 -- there is new trawler landing, change the rate
{
get_prodrate = PlantProd( gShip );
newlnventory = glnventory + gTripCatch[gShip];
new_prodrate = (gInventory * gCur_prodrate +
gTripCatch[gShip] * get_prodrate)/newInventory;
glnventory = newlnventory;
gCur_prodrate = get_prodrate;
", gTripCatch[gShip]);
printf('Incoming: %5d
printf("Inventory: %5d
Prodrate:
%5d\n",gInventory, gair_prodrate);
/***************** FUNCTION THAT CALCULATES TIME VALUE
TimeValue(int gShip)
***********************/
{
int
float
stresstrawl, stressplant;
quota, ytd_catch, baseUalue, timeUalue;
quota = gQuota[gShip];
ytd_catch = gYtd_Catch[gShip];
baseValue = quota/DRYS;
timeValue = (quota - ytd_catch)/(DRYS - gDay);
/* Timevalue can
If( (timeUalue + 0.5) < baseValue )
stresstrawl = 0;
/* Trawler has less quota/day
/* and spends therefore time ashore
else
stresstrawl = 1;
/* Trawler has more quota/day
/* and has to keep fishing to get his
return(stresstrawl);
deviate a little
than at BOP */
*/
than at BOP */
quota */
86
/***** FUNCTION THAT ESTIMATES CURRENT 1NUENTORY AND PROSPECTIVE LANDINGS
Inv_Capacity( Int flag )
****/
{
full_load,temp,onsea_Inv,onland_inv, weekday, tot_RawMat;
int
weekday = FindDay( gDay );
temp = gShip;
onsea_inv = 0;
for( gShip = 0; gShip < SHIP; gShip++)
If( gTd_triggShip) >= 5)
onsea_Inv += gTripCatch[gShip];
/* FIND tripcatch for all trawlers that */
/* are eligible to land today */
gShip = temp;
onland_lny = ginventory + gTripCatch[gShip];
onsea_Inv -= gTripCatch[gShip];
if( flag == 1)
{
if( onland_inv < 100 )
{
if( onsea_Inv < 100 )
full_load = 2;
if(( onsea_Inv > 99) &&
/* Min_min prodrate for both species
( onsea_Inv < 200 ))
if(( weekday == 4)11( weekday == 5 )) /* on Thursd and Friday more speed */
/* 75% possible prodrate for both species */
full_load = 4;
else
full_load = 3;
If( onsea_Inv > 199
full_load = 4;
/* Medium prodrate */
)
1
if(( onland_inv > 99) && ( onland_Inv < 200 ))
if( onsea_Inv < 100 )
full_load = 3;
if(( onsea_Inv > 99) && ( onsea_Inv < 200 ))
If(( weekday == 4)11( weekday
full_load = 5;
else
full_load = 4;
==
/* Medium prodrate for both species */
5 )) /* on Thursd and Friday more speed */
/* Max possible prodrate for both species */
/* 75% prodrate
1
if( onsea_Inv > 199
full_load = 5;
if( onland_Inv >
199
if( onsea_Inv < 100
If((weekday == 1)
full_load = 4;
else
full_load = 5;
1
else
full_load = 5;
)
/* Max possible prodrate */
)
)
11
(weekday == 2))
/* 75% prodrate for both species */
87
else
{
if(( glnventory > 240 )
11
( onsea_inv >240 ))
/* is total raw mat */
/* available more than approx. *1
/* 7 day production.
IF yes then wait */
full_load = 0;
else
full_load = 1;
/* ELSE go fishing again */
}
return( full_load );
}
/***************
FUNCTION THAT PRINTS OUT INVENTORY STATUS
******************/
Print_Inv()
{
printf("1
3
4
5
6
7
2
printf(
for( gDay = 0; gDay < 15; gDay++ )
8
9
10
11
12
13
14
15\n");
\n');
{
printf("nd",g1nv_status[gDayl);
}
printf("\m");
printf("\m");
if(DAYS > 14)
{
printf("16 17 18 19
20 21
22
printf('
for( gDay - 15; gDay < 30; gDay++ )
23
24
25
26
27
28
29
30 rni:
39
40
41
42
43
44
45\n");
\n");
54
55
56
57
58
59
60\n");
\n");
69
70
71
72
73
74
75\n");
\n");
{
printf("ne,ginv_status[gDay]);
}
printf("\n");
printf("\m");
}
if(DAYS > 29)
{
printf("31 32 33 34 35 36 37 38
printf("
for( gDay = 30; gDay < 45; gDay++ )
{
printf("nd",gInv_status[gDay]);
}
printf("\n");
printf("\n");
)
If(DAYS > 44)
{
printf("46 47 48 49 50 51
52
53
printf(*
for( gDay = 45; gDay < 60; gDay++ )
{
printf("X5e,gInv_status[gDay]);
)
printf("\m");
printf("\n");
}
If(DAYS > 59)
{
printf("61 62 63 64 65 66 67 68
printf('
for( gDay = 60; gDay < 75; gDay++ )
{
printf("X5e,gInv_status[gDay]);
}
printf("\m");
prIntf("\n");
)
88
If(DRYS > 74)
82
83
printf('76 77 78 79 80 81
printf('
for( gDay = 75; gDay < 90; gDay++ )
84
85
86
87
88
89
90\n");
100
101
102
103
104
105\n');
\n');
115
116
117
118
119
120\n");
printf('%51:1",gInv_statua[gDay]);
}
printf("\n");
printf("\n');
if(DRYS > 89)
93
94
95
96 97 98
printf("91 92
printf(
for( gDay = 90; gDay < 105; gDay++ )
99
printf("X5dgInv_status[gDay]);
}
prIntf("\n");
printf("\n");
}
if(DRYS > 104)
printf("106 107 108 109 110 111 112 113 114
printf("
for( gDay = 105; gDay < 120; gDay++ )
printf('%5d",gInv_status[gDay]);
}
printf("\n');
prIntf("\n");
}
If(DRYS > 119)
printf("121 122 123 124 125 126 127 128 129
prIntf("
for( gDay = 120; gDay <
130 131
132
133
134
135\n");
\n");
135; gDay++ )
printf("%5e,gInv_status[g0ayl);
printf("\n");
printf("\n");
}
If(DRYS > 134)
printf("136 137 138 139 140 141 142 143 144
printf('
for( gDay = 135; gDay <
145
146
147
148
149
150\n');
\n");
161
162
163
164
165\n');
150; gDay++ )
printf(151:1",gInv_status[gDay]);
printf("\n");
printf("\n');
}
if(DRYS > 149)
printf(' 151
152 153 154 155 156 157 158 159 160
printfr
for( gDay = 150; gDay < 165; gDay++
prIntf("%51:1",gInv_status[gDay]);
printf("\n');
prIntf(\n");
)
89
If(DRYS > 164)
{
177
178
179
180\n");
\n");
182 183 184 185 186 187 188 189 190 191 192
printf('
181
printf('
for( gDay = 180; gDay < 195; gDay++ )
193
194
195\n");
printf("166 167 168 169 170 171 172 173 174
prIntf(
for( gDay = 165; gDay < 180; gDay++ )
175
176
{
prIntf("X5e,gInv_status[gDay]);
}
printf("\n");
printf("\n");
}
If(DRYS > 179)
{
(
printf("X5d",g1nv_status[gDay]);
}
printW\n");
printf("\n");
}
if(DRYS > 194)
1
206
207
208
209
210\n");
\n");
220
221
222
223
224
225\n");
235
236
237
238
239
240\n");
printf(' 241 242 243 244 245 246 247 248 249 250
printf('
for( gDay = 240; gDay < 255; gDay++ )
251
252
253
254
255\n");
printf(' 196 197 198 199 200 201 202 203 204 205
printf('
for( gDay = 195; gDay < 210; gDay++ )
(
printf("X5d',g1nv_status[gDay]);
)
printf("\n");
printf("\n");
1
If(DRYS > 209)
{
printf("211 212 213 214 215 216 217 218 219
printf('
for( gDay = 210; gDay < 225; gDay++ )
{
printf("X5e,g1nv_3tatu3[gDay]);
)
printf("\n");
printf("\n");
}
If(DRYS > 224)
{
prIntf("226 227 228 229 230 231 232 233 234
prIntf('
for( gDay = 225; gDay < 240; gDay++
)
{
printf("nd',gInv_status[gDay]);
1
printf("\n");
prIntf("\n');
}
If(DRYS > 239)
1
(
printf("X5e,g1nv_3tatu3[gDay1);
)
printf("\n");
Printf("\n");
}
\n");
90
if(DRYS > 254)
1
265
266
267
268
269
270\n");
\n");
280
281
282
283
284
285\n");
printf(" 286 287 288 289 290 291 292 293 294 295
296
297
298
299
300\n");
311
312
313
314
315\n");
printf("256 257 258 259 260 261 262 263 264
printf("
for( gDay = 255; gDay < 270; gDay++
)
{
printf("X5c1",gInv_status[000);
}
printf("\n");
printf("\n");
1
If(DRYS > 269)
(
printf("271 272 273 274 275 276 277 278 279
printf('
for(
On
= 270; gDay < 285; gDay++
)
{
printf("%5dgInv_3tatu5[g0ay1);
)
printf("\n");
prIntf("\n");
1
if(DRYS > 284)
(
printfr
for( gDay = 285; gDay < 300; gDay++ )
1
printf("ne,gInv_status[gDay]);
}
printf("\n");
printf("\n");
1
if(DRYS > 299)
(
printf("301 302 303 304 305 306 307 308 309
printf("
for( gDay - 300; gDay < 315; gDay++ )
310
\n");
{
printf("%al",gInv_status[gDay]);
}
printf("\n");
printf("\n");
1
If(DRYS > 314)
1
printf(" 316 317 318 319 320 321 322 323 324 325
printf("
for( gDay = 315; gDay < 330; gDay++ )
326
327
328
329
330\n");
341
342
343
344
345\n");
{
printf("ne,gInv_3tatus[gDay1);
1
prIntf("\n");
printf("\n");
}
If(DRYS > 329)
1
printf(" 331 332 333 334 335 336 337 338 339 340
\xi");
printf(
for( gDay = 330; gDay < 345; gDay++
{
printf("X5d",gInv_status[gDay]);
1
printf("\n");
printf("\n");
1
)
91
If(DAYS > 344)
{
printf( 346 347 348 349 350 351 352 353 354 355
printf("
for( gDay = 345; gDay < 360; gDay++ )
356
357
358
359
360\n");
(
printf(51:1",glnu_status[gDay]);
}
printf("\n");
printf("\n");
1
}
/*********************************************************************************/
92
Appendix A-3
Example of reports generated by simulation model.
Daily report.
Day
Trawler
11
1
11
2
11
3
11
4
12
1
12
2
12
3
12
4
13
13
13
13
1
2
3
4
14
1
14
2
14
3
14
4
Cod
Haddock
Pollock
Pearch
Trawler is landing catch
6.0
0.0
0.0
5.0
6.0
0.0
0.0
4.0
10
8.0
2.0
0.0
0.0
0.0
0.0
4.0
4.0
12
1.0
0.0
0.0
6.0
5.0
5.0
7.0
6.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
4.0
6.0
7.0
5.0
4.0
2.0
3.0
4.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
4.0
6.0
4.0
5.0
8
8
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
5.0
5.0
5.0
5.0
9
0.0
0.0
0.0
0.0
0.0
0.0
5.0
4.0
3.0
10
0.0
0.0
0.0
0.0
0.0
0.0
7.0
9
8.0
11
7.0
10
1
2
15
3
15
4
4.0
3.0
4.0
2.0
16
1
5.0
16
2
1.0
16
3
16
4
4.0
Trawler is landing catch
17
17
18
18
18
18
2
3
4
1
2
3
4
19
1
19
2
19
3
19
4
6
Trawler is landing catch
15
1
11
Trawler is landing catch
15
17
17
Total
2.0
3.0
3.0
7
9
11
14
11
7
9
8
9
7
5
7
Trawler is landing catch
0.0
5.0
0.0
Trawler is landing catch
2.0
0.0
0.0
2.0
0.0
0.0
6.0
2.0
4.0
4.0
0.0
0.0
9.0
9
4
8
13
Trawler is landing catch
2.0
4.0
0.0
0.0
0.0
0.0
3.0
4.0
5
8
93
Trip summary report.
Trawler
Tripe
Day-in
Cod
20.0
22.0
46.0
48.0
61.0
61.0
43.0
82.0
65.0
67.0
59.0
70.0
57.0
46.0
40.0
33.0
109.0
40.0
52.0
64.0
31.0
23.0
41.0
48.0
35.0
56.0
29.0
48.0
32.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
24.0
38.0
67.0
69.0
70.0
74.0
65.0
89.0
87.0
88.0
34.0
56.0
48.0
49.0
39.0
49.0
90.0
36.0
49.0
65.0
30.0
34.0
45.0
61.0
47.0
61.0
27.0
76.0
31.0
263 1428.0
0.0
0.0
1598.0
2
1
9
7
2
2
18
7
2
3
4
2
5
2
6
2
7
33
46
60
74
88
13
2
2
8
101
11
2
9
13
2
10
2
11
116
130
142
2
12
151
7
2
2
15
2
16
2
17
2
2
18
19
159
166
177
186
199
219
228
6
2
13
14
2
20
241
2
21
2
22
23
24
25
255
264
275
284
296
310
319
334
346
2
2
2
2
26
2
2
27
28
29
Total
29
2
11
12
12
12
12
6
5
7
7
11
7
7
8
7
7
9
7
10
12
7
13
10
Haddock
Pearch
Pollock
Days
Total
44
60
113
117
131
135
108
171
152
155
93
126
105
95
79
82
199
76
101
129
61
57
86
109
82
117
56
124
63
3026
94
Trawler schedule.
63
1
XmtwtfXXmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt IX
fffffffff--fffffffffff--ffffffffffff--ffffffffffff--fffffffffff
fffffff--fffffff--fffffffffffff--fffffffffff--ffffffffffff--ff
-ffffffff--ffffffffffff--fffffffffffff--ffffffffffff--ffffffff
--ffffffffffff--ffffffffffff--ffffffffffff--ffffffffffff--ffff
127
64
XmtwtfXXmtwt IXXmtwt fXXmttut fXXmtwt fXXmtwt fXXmtwt fXXmtwt IXXmtwt fX
ff----fffffffff--ffffffffffff---fffffffffff----fffffffffff--fff
ffffffffff--ffffffffffff--fffffffffff--fffffffffffff--fffffffff
ffff--fffffffffff--fffffffffff--fffffffffffff--ffffffffff--ffff
ffffffff--ffffffffffff---fffffffffff---fffffffffff---ffffffffff
189
128
XmtwtfXXmtwt IXXmtwt IXXmtwt fXXmtwt IXXmtwt fXXmtwt IXXmtwt fXXmtwt IX
ffffffff
ffffffff
fffff---ffffff----fffffff----If
ffffff--fffffff--ffffff--fffff----fffffff--fffffff--ff
fff
fffffffffff- fffffffff
fffff--ffffffff
fffffffff
ffffffff--ffffffffff--fffff--ffffff--fffff--ffffffffff
I
190
252
Xmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt IXXmtwt IXXmtwt IX
ffffffff
fffffffff
fff
I
fffffff
fffff--ffff
ffffff
fffffff--fffffff
ffffffff
fffff
ffffffff
ffffffffff
fffffffff
fff
fffffff--fffff--fffffff--fffffffff--ffffffff--fffff--f
253
315
XmtwtfXXmtwtfXXmtwtfXXmtwtfXXmtwt IXXmtwt IXXmtwt fXXmtwt fXXmtwt IX
f--fffffff--fffff--ffffffffff--ffffffff--ffffffffff
ffff
ff--fffffff--fffffffff--fffffff--ffffffffff--ffffffffffff ffff
ffff
fffff--fffffff--ffffffffff--fffffffffff--fffffffffff
ffffffff--fffff--fffffff--ffffffffff--fffffff--ffffffffffff--ff
316
360
Xmtwt fXXmtwt fXXmtwt fXXmtwt fXXmtwt f XXmt wt fXXmt
ffffffff--ffffffffffff--ffffffffffff
fff--fffffffffffff--ffffffffff
f--ffffffffffff
fffffffffff
ffffffffff--ffffffffffff--fffffffffffff
Note:
First row shows day of the year.
Second row are the weekdays, where x are Saturdays and Sundays.
-Rows 3 through 6 show activity of trawlers 1 through 4 (f = fishing; - = ashore).
95
Daily inventory status.
2
3
4
5
6
7
8
9
300
245
190
135
80
25
0
0
16
17
18
19
20
21
22
68
35
62
29
0
0
31
32
33
34
35
58
20
83
33
46
47
48
116
75
61
10
11
12
13
14
15
11
41
86
53
20
0
0
23
24
25
26
27
28
29
30
0
70
32
98
60
22
0
0
96
36
37
38
39
40
41
42
43
44
45
0
0
104
63
22
87
37
0
0
81
40
49
50
51
52
53
54
55
56
57
58
59
60
34
0
0
134
94
54
86
37
0
0
99
59
156
62
63
64
65
66
67
68
69
70
71
72
73
74
75
122
88
54
54
20
94
48
115
59
3
3
112
66
145
89
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
33
0
0
69
23
95
49
3
0
0
100
54
116
70
24
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
0
0
92
229
161
93
25
0
0
80
184
117
50
0
0
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
0
113
58
165
97
29
0
0
84
28
125
70
15
0
0
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
51
147
97
47
0
0
0
116
44
127
55
0
0
0
138
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
283
224
165
106
47
47
93
46
73
24
0
0
0
100
41
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
119
71
23
0
0
107
44
90
143
91
39
39
48
62
7
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
49
0
0
0
59
113
61
95
42
0
0
44
85
33
41
1
Note:
First row shows day of the year.
Second row shows the inventory status at the processing plant in Metric Tons.
APPENDIX B
LINEAR PROGRAMMING: DEFINITION
96
Appendix B-1
The MPL program for one run of Rule C.
TITLE
ProductMix
INDEX
day
(Sul,Mol,Tul,Wel,Thl,Frl,Sal,Su2,Mo2,Tu2,We2,Th2,Fr2,Sa2,
Su3,Mo3,Tu3,We3,Th3,Fr3,Sa3,Su4,Mo4,Tu4,We4,Th4,Fr4,5434,
Su5,Mo5,Tu5,We5,Th5,Fr5,Sa5,Su6,11o6,Tu6,14e6,Th6,Fr6,Sa6,
Su7,Mo7,Tu7,We7,Th7,Fr7,507,Su8,Mo8,Tu8,We8,Th8,Fr8,508,
Su9,Mo9,Tu9,14e9,Th9,Fr9,509,SuO,MoO,TuO,WeO,ThO,FrO,S00);
codprod = (C1,C2);
polprod = (P1,P2);
=
DATA
PrIceCod[codprod] := (302000,231000);
(151: per one metric ton
product)
PricePol[polprod] := (147000,120000);
per one metric ton
product)
YieldCod[codprod]
(40% and 461. 1
(2.500,2.1739);
YieldPol[polprod] := (2.0000,1.7857);
(50% and 56% }
CodRawCost := 58000;
(Cost of raw mat. cod 1SK/MT)
PolRawCost := 35000;
(Cost of raw mat. pollock /SK/MT)
RegWages := 650;
(Hourly wages for regular work)
Ov_Wages := 950;
(Hourly wages for overtime work)
MaxCodln[day] := (0,73,0,97,56,0,0,0,73,0,0,37,0,0,0,69,0,81,0,0,0,
0,103,0,0,0,75,0,0,88,0,70,0,0,0,0,77,0,0,0,0,0,
0,103,0,0,0,0,0,0,65,115,0,78,0,0,0,74,0,0,0,0,0,
0,43,0,20,0,0,0);
(Rmnt of incom cod,MT)
MaxPolln[day] := (0,66,0,86,56,0,0,0,85,0,0,56,0,0,0,87,0,99,0,0,0,
0,109,0,0,0,90,0,0,90,0,62,0,0,0,0,98,0,0,0,0,0,
0,105,0,0,0,0,0,0,87,95,0,74,0,0,0,95,0,0,0,0,0,
0,37,0,39,0,0,0);
(Rmnt of incom pol,MT)
LabReqCod[codprod] := (78.1,39.5);
(Labour requirements per codprod)
LabReqPol[polprod] := (44.4,32.5);
(Labour req.mnts hrs/kg polduct)
InaCost := 1000;
(Inventory cost 1000 15K/MT/day)
InvPCost := 500;
(Inventory cost 500 15K/MT/day)
(la
DECISION URRIRBLES
QuantCod[day,codprod] -> ""
QuantPol[day,polprod] ->
RgLabhrs[day]
OvLabhrs[day]
InvCod[day]
InvPol[day]
CodRawln[day]
PolRawln[day]
MACRO
CodRev
PolRev
Coduse
Poluse
InvCoTot
InvPoTot
->
->
->
->
->
->
Reg
Over
Invtcod
Invtpol
Codln
Polln
(Quantity of cod produced)
(Quantity of pollock produced)
(Rmount of labour hours used)
(fill inventory of cod)
(AN inventory of pol)
(Amount of incoming cod)
(Amount of incoming pollock)
SUM(day,codprod:PriceCod*QuantCod);
:= SUM(day,polprod:PrIcePol*QuantPol);
:= SUM(day,codprod:YieldCod*QuantCod);
SUM(day,polprod:YieldPol*QuantPoI);
:= SUM(day:InveCost*InvCod);
SUM(day:InvPCost*InvPol);
(Total coduse)
(Cost of cod inv)
(Cost of pol Inv)
97
MODEL
MAX TothietRev = CodRev + PolRev - RegWages*RgLabtot Ov_Wages*OvLabTot
CodRawCost*Codtot - PolRawCost*Poltot
InvCoTot - InvPoTot;
SUBJECT TO
Coduse - Codtot < 0;
CodRawMa:
PolRawMa:
Poluse - Poltot < 0;
TotCodln:
SUM(day:CodRawln) - Codtot = 0;
TotPolln:
SUM(day:PolRawln) - Poltot = 0;
InvCo[day]:
InvCod = InvCod[day-1] + CodRawIn
SUM(codprod:YieldCod*QuantCod);
InvPol = InvPol[day-1] + PolRawIn
InvPo[day]:
SUM(polprod:YieldPol*QuantPol);
MaxCo[day]:
CodRawIn = MaxCodln;
PolRawIn = MaxPolln;
MaxPo[day]:
LabUse[day]:
SUM(codprod:LabReqCod*QuantCod) +
SUM(polprod:LabReqPol*QuantPol) - RgLabhrs - OvLabhrs <
0;
RgTotLab:
OvTotLab:
SUM(day:RgLabhrs) -RgLabtot = 0;
SUM(day:OvLabhrs) -OvLabtot = 0;
BOUND
MaxRghrs[day]: RgLabhrs < 880;
MinRghrs[day]: RgLabhrs > 840;
Max0vhrs[day]: OvLabhrs < 420;
MaxInvCo[day]: InvCod < 150;
MaxInvPo[day]: InvPol < 150;
END
APPENDIX C
SYSTEM OUTPUT REPORTS
Table C.1 : Summarized LP output for Rule A in spring, iteration 1, part 1 of 4.
7A0C
.
MON
THU
31
30
MED
THU
141
SAT
32
33
34
35
3
MON
37
Thu
38
WED
THU
RE
SAT
MON
MON
39
THU
WED
40
41
42
4.4
44
45
46
Thu
47
RE
SAT
48
49
A
IncornetoRM
UsedIRM
Cod
Pollock
28000 21000 38000 24000
30000 29000 52000 33000
Cod
28000 21000 38000 24000
Pollock
20398 27386
InventorI(EOP)
Cod
Pollock
Cod-1
9802
Produced
Cod-2
12880
Poll
P01-2
Usedlabour
Avellablelab
Hours
Regular
Overtimi
Labour slack
11218
9660
11423
680
800
280
15338
880
600
280
0
0
10414 20938
39640 25225
52802 84864 25225
17480 11040
5832
880
600
280
.;
Allcostfiguresaninthousend
'',
lagampliciOonaoftWISA?
.
MUM
MON
2*
30
THU
31
8900 12880 11960
7658
2926
19820
12813
13681
6361
9180
881
881
561
881
881
600
280
881
600
280
580
600
280
600
280
600
280
-1
-1
-1
-1
-1
UsedRIA cad
Inventorff0P), cost
Produced, rewetues
1624
1050
1824
Palo*
714
Cod
Pollock
Cod-1
Cod-2
5
1218
1015
1218
959
THU
RE
SAT
'11UW's
MON
32
THU
WED
33
34
35
04
37
38
39
2204
1820
2204
364
1392
1155
1392
733
870
1225
870
958
1624
1050
1624
585
1508
1575
1508
843
P01-2
AvMsbloplab
Hours
Regular
Overtime
Labour coat
Romper
Overtime
_
883
8
26
32
2975
2231
4038
2914
1854
1382
880
600
280
390
266
2011
1856
880
600
280
390
266
706
880
600
280
390
266
2550
1155
354
881
881
561
600
280
390
800
280
390
287
1214.1
liamflabax
1387
267
2569
13
560
533
-----,
4
10
24
1594
2975
1229
2763
1349
881
881
881
800
280
390
267
600
280
390
267
600
280
390
267
12392 29762 62762 25225
7186
5997
7820 11040 15180 22278
1845 19820 12613
860
600
280
881
800
260
561
-1
-1
-1
WED
l%Vr
Cod
Pollock
Cod
17000 24000 33000 51000
29000 33000 30000 33000
17000 24000 33000 48431 2569
29000 20808 12630
37537 25225
7637 20915 47558 64865 25225
Regular
Overflow
Incoming RU, amd
15000 28000 26000 31000
35000 30000 45000 21000
15000 28000 28000 31000
27363 16722 18359 3691 39840 25225
Thu
40
1798
735
1798
129
RE
41
1387
5413
10177
880
600
280
560
8607
1900
881
600
280
8315
-1
-1
1182
18769
12613
881
881
881
561
600
200
800
280
600
280
560
-1
-1
-1
SAT
DWW-
MON
THU
WED
42
THU
62
RE
44
SAT
45
46
47
48
49
986
1015
986
1015
1392
1155
1392
1914
1050
1914
442
2958
1155
2809
883
721
149
1314
883
3
32
2170
1385
13
271
2914
1854
880
600
280
390
268
881
561
600
280
390
267
560
533
1806
796
1231
880
600
280
390
266
6
15
31
13
2550
1265
230
3507
928
5148
273
2759
1854
861
861
861
881
600
280
390
267
561
600
280
390
267
600
280
390
267
600
280
390
267
560
533
Table C.1 : Summarized LP output for Rule A in spring, iteration 1, part 2 of 4.
4
NON
51
56
THU
MED
THU
MR
52
53
54
66
SAT
56
31000 20000 23000 23000
47000 32000 35000 47000
31000 20000 23000 23000
16823 25973 23517 23517 42342 27027
THU
WED
MU
PR
SAT
68
50
60
61
62
63
60407 54802 76804 80369 27027
3980
7800
8000
10580
11759
10680
13514
13388
2208
7803
7090
941
941
941
941
601
941
941
941
941
640
300
640
300
840
300
640
300
600
640
300
640
300
941
640
300
640
300
640
300
800
-1
-1
-1
-1
-1
-1
-1
-1
-1
.1
-1
MON
THU
MED
THU
MR
51
52
63
64
56
1798
1646
1798
1160
1120
1160
1334
1646
1334
852
909
1334
1225
1334
823
623
14
17
23
35
14
3294
694
622
940
640
300
416
285
2125
1000
2444
1729
2444
1729
3112
941
941
941
640
300
416
286
640
300
418
286
941
840
300
416
286
A014
SAT
56
1452
-- -
al
.
946
640
300
416
286
69
70
6643
7060
NON
72
1.
Thu
73
MED
THU
PM
74
76
76
36000 41000
53000 31000
28000
62000
25000
38000
1326
5643 46046 46046 13673
33931
13573
51674
10409
5510
663
7069 33931
1069
62674 44874 76874 30631
13572
2826 13672
428
1000
1001
1001
302
1061
680
320
680
320
1060
720
1060
680
320
640
440
720
440
720
440
-1
-1
338
100
100
90
SAT
62
83
2202
1925
2262
1102
700
1102
548
1180
1280
1160
:qi0le.-$4
!
i
'
946
MON
THU
MED
THU
RR
85
66
67
68
69
1624
1155
1624
198
1566
1295
1666
247
1624
1820
1624
198
1677
6786
SAT
70
1677
.-
.x11314..:
xt
18000
NON
THU
72
73
2204
1856
2204
2378
1085
1088
NED
74
46
475
410
1988
1147
1044
1561
3112
601
941
941
941
941
640
300
416
286
640
300
416
208
941
640
300
416
286
840
300
416
286
640
300
416
288
3382
29
3262
1986
415
618
416
3311
3311
998
801
1000
1000
680
320
1000
680
1001
1001
302
680
320
442
305
680
320
442
306
'
600
680
320
442
571
304
'
442
304
52
3382
320
442
304
29
7
26
3143
1273
97
640
267
,..................
23122
15315
1060
720
1061
681
440
440
800
100
00
119
41
4099
720
THU
M4
SAT
76
76
77
2030
1120
1068
1323
7
14
1069
46243 30631
37800
1000
660
320
11200
SAT
77
35000
32000
1000
680
320
MR
14
-
68
801
61
35
1812
'
67
2822 22523 22523
THU
36
2416
671
66
3526
60
27
2295
600
65
2822
NED
25
1196
3092
338
.
SAT
13514
59
1482
MR
10600
THU
497
THU
11200
58
161
NED
27367 57306 103663 58618
MON
870
490
070
743
THU
28000 27000
33000 37000
28000 27000
6000
10817 21171
NON
7069
9200
12986
OS
.
19000 20000 15000
55000 20000 36000 14000
39000 10000 20000 15000
4603 15605 14100 21234 42342 27027
14260
r4U1117
-
39000
34404 45867 69369 27027
11759 21171
fJ5
4
28377
4724
5138
940
840
300
'
NON
62
1610
1072
1
22
854
38
16
4099
120
2778
1060
720
1060
720
1081
440
468
323
440
468
323
440
486
720
324
3309
2251
1060
720
1061
681
440
468
323
440
468
324
720
000
647
Table C.1 : Summarized LP output for Rule A in spring, iteration 1, part 3 of 4.
'
10
SUN
NON
THU
WED
Thu
MR
78
79
80
81
82
63
47000
77000
35651
11140
34762
SAT
64
I
34000
69000
34000
2805 50450 48182
13600
31392
17381
1120
1121
760
360
760
360
1303
1120
760
360
25225 24001
4011 NON
79
10008
25990
1121
1071
760
360
760
380
.1
49
-1
i
68
80
00
06000
100000
60244 21756
60244 27756
46412 59580
40421
21756
27756
106000 59586
100000 59519
77000 42238 08632 46182
4459
87
ia
01
11
03
04
00000
106000
11149
14341
86
THU
WED
THU
MR
80
81
82
83
1241
840
720
SAT
84
400
'11014"
44
1239
640
400
31302
10435
11603
1240
840
400
96
03000 58000
06000 71000
66244 60244
.
43056.
15623
05
15623
07
96
Q.
53644 43056
1276$
31302 31392
1241
1240
640
400
840
400
347
640
400
403
600
MON
Thu
WED
THU
AR
86
SAT
87
88
89
00
91
-414442
400
840
1241
640
400
1241
640
400
31302 31302
1230
640
700.
601
741
400
800
$40
400
30
640
400
99
MON
THU
WED
THU
MR
93
SAT
04
05
96
07
08
11411V-
*4
647
1972
2065
1972
1217
91
5220
3710
3958
1788
1688
11
39
4331
1120
760
380
494
342
22
53
21
49
1347
4107
2555
101
3708
3541
1121
760
380
1120
1121
1071
780
380
404
342
780
380
780
360
494
295
494
343
24
7252
494
343
1262
1624
5568
3500
3958
2086
30
2312
6394
14/5
30
3360
3058
7252
2949
1538
8
2857
3145
1241
720
840
400
548
381
1239
840
400
648
379
1404
1240
640
400
546
380
3364
2485
3068
1240
840
400
548
840
400
548
380
381
2978
799
800
759
1241
840
400
840
NON
TOSS
MED
100
101
102
547
842
1878
447
26
48
15
84
67
7252
7262
1542
1538
1281
35, 406
1148
2730
1241
17512
26473
6058
1241
640
640
400
400
THU
103
104
4408
4096
3958
4624
2730
3958
MR
14625
800
600
SAT
105
,,......,,1
1810
28
50
105
16683
24615
.
2726
2695
2079
104
7756 17511
117000 105000 168527
33364
1601$
640
103
76000 76000
117000 78000
60244 68244
5675
30040
lao:
102
36036 33365
7612
22636 24615
tot
14512
24756 14511
06000 161000 11335$ 60400
*$d23
100
3636
347
840
400
620
840
400
620
1241
1241
1239
840
400
648
840
400
648
381
361
840
400
546
379
1168
17
2649
2452
709::
801
741
800:
840
400
620
840
400
520
2978
8
16
60
98
84
7252
7262
1861
1241
1241
1794
800
840
400
646
840
400
548
800
381
760
i:
759:
- ..... , , ..... .
640
400
620
1016
927
Table C.1 : Summarized LP output for Rule A in spring, iteration 1, part 4 of 4.
12
.-",-
MON
THU
BRIO
THU
MR
107
108
109
110
111
BAT
112
MON
TRU
BOD
THU
MR
114
115
116
117
116
SAT
119
I 04440
.
79000 64000
71000
71547
-
58559 56559 51410
74000
71454
92 46154
37636 37636 23079
7454
Itekt 100969 61410
71000 144908 98764 44144 80918 23078
32011
32869
29279 29279 25705
16910
18919
11539
839
641
641
840
880
440
39
860
440
513
880
440
367
52 25846
'
..;:.x.:.....:..:,
-00N
$00
1301
1301
1142
1301
1301
880
420
860
420
880
420
880
880
420
.1
-1
420
156
-1
THU
VMD
THU
MI
107
108
109
110
111
4582
2465
4150
3712
2590
4144
2050
2060
55
26
4304
4304
3779
1301
1301
880
420
572
400
880
420
572
400
1799
SAT
112
3
4$5.::
1615
7
4444
880
440
880
880
440
880
840
1.
-1
MON
39
MON
THU
114
116
BED
116
THU
MM
SAT
117
118
119
806
1324
1324
72
7603
7593
1142
1301
1301
$80
420
672
249
880
420
672
400
860
6
420
572
400
49. 044
30
12
3127
839
2781
2781
1696
641
841
880
880
440
546
513
880
111
440
840
648
797
,
7A44444 0r
66178
50155
66176
47726
.
36
1438000
1773000
1438006
1773003
143354
3969398
130155
501455
678506
232956
68411
47600
32220
440
546
880
440
546
880
440
546
840
1816
42025
84277
74994
23260
54207
34600
23440
22438
19693
63683
Table C.2 : Summarized LP output for Rule A in summer, iteration 1, part 1 of S.
-
1
MON
12OR
121
Thu
122
WED
1HU
RI
123
124
125
SAT
126
.3
EON
PAM
THU
WED
THU
FR
127
128
129
130
131
132
SAT
133
,
Incoming AM
Used RA
Cod
Pollock
Cod
67000 101000
85000
99000 87000
62897 24104
67000
5636
Polio&
Inventory(EOP)
Produced
25541
24103
85000
5422
22697
Cod
Pollock
Cod-1
Cod-2
Pol-2
Hours
Regular
Overtime
Labour slack
Produced, revenues
30820 33418
13043
1321
880
440
880
440
880
440
3157
1321
860
440
-1
-1
1321
1321
880
440
840
Regular
Overtime
880
440
-1
-1
-1
-1
:::::,:::::::-:.
WED
111U
RI
SAT
MON
THU
WED
123
124
125
126
128
129
130
WED
DIU
RI
SAT
136
137
138
139
140
82000
115000
48485 33515
37838
1HU
131
1321
680
841
440
840
-1
14099
33515
115000 100901
14660 13406
5444
7050
1361
920
440
920
920
440
920
RI
SAT
132
133
' ' ON ,:
134 :
61261
39640
39640
30631
19820
1361
920
440
1361
881
920
440
920
440
860
-1
-1
-1
-1
-1
:
MON
1HU
WED
THU
FR
SAT
135
136
137
136
139
140
vi.w.twhi.
5046
2975
3648
24
43
1637
5243
1398
894
3886
3485
3886
2081
30
2912
1877
4370
1321
1321
880
440
572
419
880
440
572
419
1321
880
440
572
419
5658
3045
4214
197
1644
625
47
28
90
81
7119
7719
3013
382
-
1HU
135
29730 29730 18919
880
440
122
Regular
37838
680
440
THU
Overtime
97297
1321
121
1201-2
Avalable lab
59459
1321
MON
Pot-1
HOUR
-1
59459
1321
880
440
fite
Cod
Pollock
Cod
Pollock
Cod
Pollock
Cod-1
Used labour
-1
59459
25415
240000 216216 156757
10106
18829
69
14758 11892 29730
9994
840
MON
'34
r
4344
Cod-2
Labour cost
162515:404
29730
1321
-1
'''V'':' ::
Inventory(EOP), cost
::
Regular
All cost figures aro in thousand
Icelandic Kronas (000 ISM
Used RM, cost
36585 25415
29515 23784
28353
17847
9841
1321
Overtime
Incoming AM, cost
72647
28353
93363 180363
59459
12770
Pot-1
Used labour
Available lab
59459
62000
107000
410:$
1321
880
440
572
419
!Mil
3596
3745
2122
1033
25
120
.-
1474
832
108
3052
2081
2081
2081
78
49
19
880
440
572
419
840:
..
840 -
798;
1324
34
58
4427
1258
-.'
3888
2169
1748
4370
4370
4370
2781
1321
1321
1321
1321
680
440
572
419
880
440
572
419
880
440
572
419
1321
880
440
572
419
841
880
440
572
419
16
1209
1321
4756
4025
2812
840
799
920
440
572
920
440
572
1944
493
2144
1387
50
4049
20
1036
4503
2914
1361
1361
920
440
598
419
1361
920
440
598
419
861
920
440
598
416
880
837
Table C.2 : Summarized LP output for Rule A in summer, iteration 1, part 2 of S.
MON
Thu
142
143
90000
123000
74849
NED
144
THU
NM
SAT
145
146
147
' '' .....
.145
112000 59000
99000 80000
74849 72443 23710
59598
2402 51055 48352
e
MON
THU
NED
Thu
NM
149
150
151
152
153
6970 34490 33324
41441
1N
THU
NED
Thu
NM
SAT
156
157
158
159
160
161
35000
48000
29449
41441
920
440
-1
1345
920
440
920
440
-1
-1
1
41441
10270
28591
920
440
5551
48000
11780
10269
'
10907
20721
33375
920
440
7
NON
15152
15151
37151 23709
129000 63402 162402 240000 186945 140593 $41$$$k 99152 57710
34430
SAT
154
20721
20721
27077
8135
5551
33631
'
MON
-
189
E'
14369
14369
2220
16615
..
.....
860
921
921
302
960
460
39
980
460
980
460
39
39
960
460
598
960
460
960
920
900
460
960
960
480
960
920
960
460
40
319
960
460
$9
960
460
:
:
920
1421
960
480
MOW
TRU
NOD
THU
OR
142
SAT
143
144
145
148
147
4341
6496
3405
079
2060
15
02
32
4341
37
61
3422
2800
4202
04
24
120
PM
106
167
SAT
108
9508
1420
980
480
041
35940
43692
18656
21018 28308
1410
1421
1420
919
960
460
960
400
960
460
920
-1
0
1
.1
,::::.**:::
5220
4305
Thu
165
35949 20126
7185
921
WED
87000 89000 82000
99000 132000 104000
78151 81144
78151 40558
16979 78022
37533 50549
8849 30705 116705 40554
99000 214021 239999 239999 202406 151917
.
921
THU
164
.
tAil
MOW
TRU
149
150
NED
151
THU
NM
152
153
SAT
154
,r MOW
THU
156
157
94
1092
70 OM
1450
50
7953
1610
7953
7696
2519
4036
1350
1361
103
1301
3459
1361
920
440
590
419
920
440
508
417
679
920
440
598
419
921
920
440
696
410
020
440
680
590
417
060
400
598
$35
3046
1359
THU
159
AM
100
SAT
101
2030
'
137$
1707
NED
156
1450
29
3046
1450
1880
1706
569
1177
8
3046
921
900
460
596
362
960
480
598
7
3567
671
2472
960
400
598
920
960
460
598
960
460
598
920
960
460
598
THU
NED
16$
164
165
5046
3465
4533
5182
4020
3540
594
4758
3040
50
37
107
119
120
8304
6497
1421
1150
1420
900
9
24
1198
MON
503
0
3276
921
960
480
598
322
'
':.:
921
960
460
598
1
4533
2731
1056
319
960
460
598
920
980
460
624
438
460
624
437
Thu
166
1
AM
SAT
167
168
2352
1314
1769
120
101
78
8904
4309
41
5267
1419
1421
1420
960
460
024
436
980
480
824
438
960
460
024
437
2543
3425
919
020
873
Table C.2 : Summarized LP output for Rule A in summer, iteration 1, part 3 of 5.
in
...
MON
.x.:1
:
170
THU
171
VilD
114U
172
173
MI
174
SAT
175
177
Thu
MED
1NU
RI
178
179
180
161
SAT
182
...
.
1
MON
1NU
MED
184
165
166
1NU
187
MI
SAT
189
188
1
..114,
MON
THU
WED
THU
MR
SAT
191
192
193
194
195
196
15:::::':'
?.
62000
66000
.
75000
79000
66043
38412 23588
41441
:
41441
1
110478 69034
-. -.-
41441
27594
20861
27593
66000 45139
15365
..
-
20721
20721
13797
921
960
921
921
960
460
39
960
460
39
613
960
460
347
IsioN
10
960
460
960
MOW
Thu
MED
THU
MR
170
171
172
173
174
1200
600
400
920
,,Ipor
SAT
175
17,
... ...
6310
1450
1450
65
35
14
3046
3046
3046
921
921
960
460
596
960
460
598
921
960
460
598
.
:
42016
79959
14025 96025 54009
17921
30380
17117
1201
1201
761
1201
15143
1200
36923
1199
1201
400
1003
800
400
600
400
600
400
760
600
400
800
400
600
400
600
400
-1
197
-1
-1
-1
-1
0
THU
179
180
ME
161
1200
800
400
520
380
4350
2785
3830
1580
SAT
LW
182
MOW
THU
154
185
1196
9
23
2280
946
39
54
40
7016
4140
40
17
7018
402
599
3290
2518
1201
1201
761
1201
2649
11376
7664
6126
MED
166
23620 23365-::
1200
759,
600
400
7110,i
1533
3318
.
THU
MI
167
186
600
400
800
800
400
600
17117
1200
1201
761
BOO
600
400
760
-1
-1
400
1i
0
-1
,:.:.........,._
goole
SAT
169
'OW
1201
600
1003
600
400
520
800
400
520
SOO
400
820
400
520
700
800
400
520
381
193
361
381
723
381
5220
2670
3830
2306
7
1390
1471
MON
THU
191
192
NED
193
1111.1
MR
194
195
24
46
27
7016
2546
1832
1200
600
400
520
380
4466
1199
600
400
520
379
1201
600
400
520
381
3460
2380
2644
.
1462:
429
SAT
196
6:
2847
1200
600
400
520
380
636
1182
1196
14
.
.41itk
34
17
3436
1742
1821
..
'
.
272
600
400
526
5767
16883
:;:;:;:;:;::::."
6090
3745
3830
520
1567
66000 34234
12251: 14*01
.
1
14417
33766 34234
14417
11021
::::
1368
730
12253
.
.
1201
MED
41756.
23957
22569
178
2026
920
'
30380
THU
24
33
4640
960
480
596
65934
10431
SOO
00000
66000
45563
.
66043 23958
1330
2592
22383
9435
177
966
613
980
460
596
34234
90000
82000
36950
27041
38957
107000
MEN
3598
2310
2228
1450
105000
107000
66043
6957
79000 34234
30380
20721
480
39
45139
23566
8957
44766
901
2482
2516
1201
781
800
400
520
760
361
723
211313
759.
760-.
..
721:
272
800
400
494
600
400
494
600
400
494
1200
600
400
520
380
Table C.2 : Summarized LP output for Rule A in summer, iteration 1, part 4 of S.
12
,
... ''''''
...
MON
THU
NED
THU
NM
SAT
198
199
200
201
202
203
MON
THU
_04.
:::::..:,:m
NED
THU
AM
SAT
205
206
207
208
209
210
'
117000
38412 36412 38412
1763
40175
1763
128000 128000 128000
15365 15365 15365
.
.
705
15
MON
THU
MO
THU
PM
212
SAT
213
214
215
216
217
65000
82000
65000
10763
63964 63964
80000 121000
92000 144000
14872
78151
78151
43036 63904
14872
107000
7708
76427 22373
25786 27027
'' ''.?.'
03984
5940
20532
11186
44700
5924
44698
92000 236000 230076
67980 63964
1649
35949
35049
21518 31982
20502
22845 31082
3317
12482
20900
5362 31962 31982
1201
1201
497
600
400
800
400
500
400
1421
800
400
1421
500
400
1421
1421
1421
060
060
460
1421
900
400
1421
1421
1421
900
460
960
460
960
920
960
480
921
460
060
460
1421
760
900
480
920
900
480
920
MON
1110.1
196
199
*MD
200
THU
201
MI
202
-1
-1
-1
SAT
$1161
MON
THU
NMO
203
:::204
205
208
207
Thu
206
79
64
4640
1200
800
400
620
360
2228
2228
40
64
4640
2
1200
800
400
520
360
64
4840
1200
800
400
520
360
102
1805
4582
3745
3710
1892
783
663
1506
36
213
11
3701
3073
54
2355
4743
1644
1201
1201
407
800
400
520
800
400
520
70.
381
361
472
32
1797
3183
.
.....w...........
RI
SAT
210
4640
3220
4533
7018
5040
4633
2
45
46
11$
115
6304
8304
4750
..lutt,.:.
Igit
:
Thu
MI
SAT
221
222
223
224
1421
1421
1421
960
460
024
438
960
460
624
438
960
460
624
438
960
460
824
438
960
480
624
436
-1
THU
111,0
THU
212
213
214
215
MI
216
020
440
920
920
440
920
920
440
920
920
440
920
920
440
920
080
'I ,x4.:::,;'.':
SAT
-
217
MON
TOW
219
220
WID
221
THU
/14
222
223
SAT
224
3770
2670
2379
2239
3770
377
2239
2239
81
49
85
53
21
3356
1510
4701
791
4701
401
4701
3040
920
1421
1421
1421
1421
1421
4121
980
460
824
438
980
460
624
438
080
460
624
436
980
480
624
438
900
460
624
438
*ft
1450
6907
4701
1421
-1
MON
2593
207
1421
.1
-1
209
2239
15
460
.
-1
-1
:.:
6766
4460
2228
WED
220
20721
1200
263
THU
210
41441
1200
-1
MON
102096 98132 189360 105405 41441
.
1200
-1
I.
79000
107000
64128
51573 54054 22373
76688
S4
...,,,,.
...:::::::.
128000
-000r.
14
' '''''
920
874
'
--
.
.'
920
875
_
920
440
572
920
440
572
920
440
572
920
440
572
920
440
572
560
Table C.2 : Summarized LP output for Rule A in summer, iteration 1, part 5 of 5.
10
SUIR:
MON
THU
MED
THU
MR
1211U
226
227
226
229
230
SAT
231
::.
:.532,
MON
THU
NED
THU
MN
SAT
233
234
235
230
237
236
61000 77000 61000
73000
70000
73000
66000 129000 117000
61000 71393
1045 66155
13825
3450
5607
46431
74725
36170
::.
66607 361764,17D
4637 56559 56559 56559 56559
66155
72175 197725 239999 239999'0SM:4 235163 176604 116046
33580
28060 32641
59487
929
926
15271
22270
14947
7742
1300
1932
1361
41646
920
440
1360
920
440
920
440
920
440
920
440
-1
0
1361
.........
**MUM".
MOW
glgi
226
.
2416
1033 21420
Thu
227
1359
1
MID
226
1
TNU
RV
229
230
661
680-
29279 29279 29279 20279
1301
1301
1301
1301
21
880
420
660
420
880
420
880
420
060
420
640
-1
-1
-1
-1
610
-1
SAT
231
::
465
1300
MON
THU
233
234
MMD
THU
235238
AM
SAT
237
236
;MAU
2099000
2535000
2099010
2535000
858148
8916490
106327
751269
914961
394825
97736
70400
51700
' DOIMADIr
.
.
..:
.
.
4234
2450
4234
65
2365
34
3536
3010
9538
484
4466
4515
4606
4005
4141
2609?:
121
6
2615
67
36
99
120
.
2214
160
2050
2050
2050
2050
116
06
59
30
0
355
4304
4304
4304
4304
1300
1301
1301
1301
1301
660
420
572
399
660
420
572
400
660
420
572
400
060
420
572
400
660
420
572
400
33
38
120 WO
4612
7757
6462
7560
125
1361
2197
2593
1900
937
1960
234
5063
1361
920
440
596
419
920
440
596
418
920
440
598
416
920
440
596
419
1359
920
5146:'.
440
596
417
661:
68
637
'''
611
21
640
20
121742
68725
121743
66725
3034
36797
56271
173543
134502
47774
97736
70400
51700
40010
33861
Table C.3 : Summarized LP output for Rule C in spring, iteration 2, part 1 of 4.
e
V.
Incoming RM
Used RR
Inventory(EOP)
Produced
Used labour
Avalable lab
THU
WED
MU
FR
BAT
30
. BON -
MON
31
32
THU
33
34
35
WED
THU
SO
37
38
39
40
64000
70000
48431
15569
70000
22278
881
600
280
15589
30361
48000
67000
46000
39640
39639
7182
5569
10765
880
600
280
2*
48199
85000 48198
21160
884
452
19820
12613
881
600
280
881
881
5131
600
280
600
280
580
881
600
280
-1
-1
-1
-1
-1
19820
11569
36802
43000
72000
43000
5422
11569
64865 25225
-1
All cost figures are in thousand
60000
85000
48431
2135 39640 25225
Regular
Overtime
Icelandic Kronas (000 IVO
FR
41
SAT
ex 44
42
:
PAON
7HU
WED
THU
RI
BAT
44
45
46
47
48
49
...
Cod
Pollock
Cod
Pon3ck
Cod
Pollock
Cod-1
Cod-2
Pal-1
Poi-2
Hours
Regular
Overtime
Labour slack
3
MON
22278
MON
THU
WED
1HU
RI
SAT
30
31 31
32
33
34
35
:
MON
34
37
66576
5322
20609
879
600
280
25225
280
3036
880
600
280
39640
73647
1064
34007 103007
22060
20635
48000
69000
46936
831
19780
348
26602
879
600
1
Thu
38
41353 25225
48000
74000
48000
353
1064
38143
39640
25225
64865
426
25225
19071
19820
12613
15923
5324
881
600
280
12613
176
19820
561
881
881
881
881
881
561
560
600
280
600
280
600
200
600
280
600
280
560
-1
-1
-1
-1
-1
-1
-1
1
WED
THU
FR
SAT
39
40
41
42
-1
44
PION
MU
WED
THU
44
FR
45
BAT
46
47
48
49
62
1335
1387
."
A.V.A14
Incoming AM, cost
Cod
Polbck
Used AM, cost
InveMory(EOP), cost
Cod
Pollock
Cod
Pollodt
Produced, worms
Used labour
Available lab
Cod-1
Cod-2
Pal-1
Pol-2
Hours
Regular
Overtime
Labour cost
Regular
Overtime
3712
2450
2809
16
35
5146
881
600
280
390
267
903
1063
1387
2668
2345
2668
75
3480
2975
2809
1387
883
671
1288
1887
2494
2520
2494
190
1447
13
2784
2590
2784
883
12
20
32
1654
819
1303
880
600
280
390
266
2914
4888
98
55
881
881
600
280
390
267
600
280
390
267
13
2914
881
600
561
24
33
5146
1229
4560
280
390
267
560
533
51
881
600
280
390
287
2494
879
800
280
390
265
12
1387
37
17
883
1
43
1e54:
2784
2415
2722
3219
879
600
260
390
265
387
880
600
280
390
266
52
251
5101
32
129
13
2803
2914
1854
561
4767
2341
844
1854
26
2914
881
581
881
881
881
881
881
600
280
390
267
600
280
390
267
600
280
390
267
600
280
390
267
600
260
390
267
600
280
390
267
560
533
560
533
Table C3: Summarized LP output for Rule C in spring, iteration 2, part 2 of 4.
4
MON
:::::::::
51
Thu
52
MD
THU
Mil
SAT
53
54
55
56
AM:.
97000
44000
37000
51734 35207
13477
42342
5811
42342
27027
87000 73523 31180 69389 27027
4245
12138
23797
16229
6739
21171
941
941
941
2905 21171
941
MM
SAT
60
SI
02
69
.
-1
Thu
WED
THU
FM
St
SAT
62
59
54
55
56
'
2140
1540
2045
472
1462
2146
203
1482
35
3747
991
3112
35
1282
2604
427
941
941
941
941
640
900
418
286
640
300
418
286
840
900
416
840
900
416
286
16
268
3112
61000
70000
51734
600
571;
70
52000
68000
52000
9267
36208 42342 27027
.1
941
21171
19514
941
801
840
300
000
-1
-1
1607
MON
THU
MED
mu
MS
SAT
$7,
58
59
60
St
62
63
4408
2170
9001
1465
025
16
59
35
5497
2685
6497
985
2070
545
941
040
300
416
286
640
300
418
286
1001
080
320
660
660
320
10025
30769
999
680
320
-1
1790
940
840
300
416
285
941
840
300
416
286
inNIN"T
44
?;
.
3112
1986
941
801
26829
:
000
571
860
320
442
305
3141
90000 47705 121705
286
26635
3065 26309
21147
78376
1257
30831
1001
1001
1061
081
640
720
340
720
340
720
340
720
640
720
340
600
-1
-1
-1
-1
1
-1
119
.1
60
680
320
416
3142
49327 47746 30631
6882
660
920
MA
3306
2310
3192
1923
3729
999
080
320
442
303
6662
42205
61000
74000
57859
680
320
66
205
05000
90000
58336
SAT
77
1061
Thu
1001
76
1061
67
5526
PM
75
641
MED
5
Thu
74
14414
SO
32
WED
73
1000
THU
.
Ml
72
1001
65
106
MON
904
13160
11684
MON
946
14
640
300
416
286
1965
76025 28828
1
9018
2380
3016
1482
:
47196
25316
9
31
941
..
3536
2450
537
1267
71
1964
NUN
3001
57000
06000
55036
3030 54945
1
23797
1966,
601
SAT
89
640
300
946
14
MN
6$
23920
25
37
THU
07
4263
14080
4506
941
040
300
.1,
MON
MED
66
64970
0
-1
THU
05
80369 27027
-1
-1
MON
11629
640
900
-1
.
35577 105577
600
640
300
'''' ..
23797
14797
940
640
300
640
900
o
- ...
9268
941
0*
941
640
300
416
286
TRU
13514.
MN
5497
MED
25266
62000
601
840
900
6040
3045
25267
26429
941
840
300
-1
44
Thu
50
..,
77000
62000
51734
35266
3001
56
:.F..:.:.x.n
87000
67000
840
300
MOM
SAT
70
-Ur
7$
,
:
114
1652
MON
7HU
MED
Thu
72
79
74
76
MI
78
162
1516
1671
9770
3150
3364
1009
388
1480
3536
2590
3356
2
38
14
45
24
5846
209
6199
708
3109
1061
1001
1061
720
340
468
324
720
340
468
924
720
340
488
324
1001
880
320
442
305
7
1035
1414
1000
680
320
442
304
2119
841
:
040
609
21663 23674
15315
SAT
77
1072
3
61
60
0077
39
379
15
3185
3509
2251
1061
1061
081
720
720
340
486
324
340
408
924
800
647
Table C.3 : Summarized LP output for Rule C in spring, iteration 2, part 3 of 4.
MON
THU
WED
79
60
61
53000
62000
35851
17149
48000
70000
35651
Thu
82
SAT
84
:
;
qms
44
12149
82000 35681 105661
14341
8859 14341
72326 21878
13150
16077 25225
1120
780
300
1121
760
360
WED
THU
NB
87
88
89
90
20307
80000
15877
4850
1120
1121
1121
700
380
780
360
700
380
-1
,........,...,
1HU
86
50450 21876:
17149
-1
10938i;
28307
18836
43000
85000
39893
720
THU
WED
THU
MR
SAT
60
82
: WC-
81
83
84
;
.40
19106:
2170
2079
2784
995
921
17
31
18
4331
2072
2450
2079
.....,
1786
25601
27926
9553
425
1241
1241
800.
640
400
840
400
-1
-1
1241
840
400
840
400
640
400
840
400
840
400
-1
.1
766
NED
THU
RE
88
89
90
53
4331
36
26
40
4795
11
1468
2452
3708
1808
486
1121
1120
1121
1121
700
300
494
343
760
300
494
342
760
300
494
343
780
380
494
343
1528
2494
2275
2302
659
12
1934
1120
760
300
494
342
705
1167
375
SAT
01
31
3178
63
4795
.
402.
1240
1241
840
400
548
380
840
400
548
381
1240
640
400
548
360
SAT
MON
97
98
100
..
,.
1055
.
..110v
,
WED
THU
RE
102
103
104
'
'
67000 57397 24603
1018
21234 55850 55856 30036
24603
79982 166962 147746 91892 36036
31392
30820
509
19486
31392
8032
16330
13869
1240
640
400
1241
840
400
1241
1241
1241
840
400
1241
801
600:
640
400
840
400
940
400
640
400
640
400
600
-1
-1
.1;
-I
.1
.1
.1
.1
NED
THU
111
SAT
94
95
98
07
08
4406
2450
3958
5568
3815
3956
35
38
00
7252
7252
37
400
10
3763
4108
1404
1241
1241
425
1241
1241
640
400
548
840
400
546
600
840
400
548
840
400
548
361
381
403
381
381
27928 27028 18018
801:
THU
6
10617
1241
99
889
9641
1241
MON
2060
1094
SAT
108
87000 82000
81000 69000
.
70000 179000 147746 91892 36036
......
:;; 00
.....
THU
101
.
3243 27928 27928 16018
/
3
1384
720
192
1702
NE
.
1241
3828
2800
2302
Thu
96
7756 35511
19108
...
3074
95
74962
1323
1240
Thu
87
MED
68244 68244 35512
31252 55856 55856 36036
.
1241
88
Thu
94
76000 90000
70000 109000
'
1240
MON
93
.
3307
-1
70
1030
.
51202 55856
61184 126164
10523 15877
234
MON
SAT
91
3307
9418
486::
11
11.1
MON
68000
60000
39693
12149
33355
263111
. -_
MI
83
i
'01W*"
MON
00
100
3886
2835
3866
36
.
1955
1955
1261,
TRU
101
4758
3115
3329
25
84
1822
4497
MED
THU
NB
SAT
102
103
104
105
743
1955
1955
74
40
18
1581
4105
4105
2840
1427
1261
74
46
IS
3774
477
4105
4105
2041)
7119
75
167$
1240
1241
1241
801t
1241
1241
640
400
546
1241
1241
040
400
546
1241
701;
640
400
548
381
840
400
540
381
840
400
546
381
840
400
540
600
381
840
400
546
381
$01
600.
381
381
761
840
400
548
360
40
.
.. - ._
2972
Table C.3 : Summarized LP output for Rule C in spring, iteration 2, part 4 of 4.
..
12
.::*:.::.x.x.x
MON
Thu
107
108
MED
109
THU
AM
SAT
110
111
112
,
,:y.:%.x,
::::52.
64000
84000
71547
12454
64000
1441
:
32911
92000
83000
12454
46365
66190 25610
22238 58559
,.'
115
37836:
25810
2979
27022
Thu
114
54000
88000
46036
14796
29279
18919
1301
880
420
1301
860
420
641:
660
420
680
420
880
420
640.
-1
-I
-1
-1
-1
-I'
.
3188
16901
9099
841
680
440
660
440
660
440
840
-I
MI
SAT
40,1-.:
MON
110
111
112
ISO ::
114
,,:,:::,
THU
115
3132
3010
2670
778
2050
46
19
1324
1635
4304
2761
1301
1301
1301
1301
660
420
572
400
1301
880
420
672
400
841
880
420
572
400
660
420
572
400
660
420
572
400
84.
79
-1
MED
116
THU
117
462
1889
2451
19
23
82
962
5104
3547
1319
961
PM
1111
-.......-....1632000
1964000
1632007
1964002
305523
4325807
164165
561911
653332
144110
77642
47600
31720
OAT
119
:A0MTAW
68904
50890
68904
2081
1324
19
2018
4370
2761
841
1321
1320
1321
660
1321
660
440
572
419
660
440
672
416
880
440
572
419
660
440
672
419
50890
212
1523
49
2746
1320
440
572
416
AØT: ' $
-1
3770
3045
e
43
4469
961
3116
18919
660
440
THU
1497
13725 29730
880
440
109
1323
3555
37638
22746
1321
MED
7603
42254 22746
27450 59459
1321
108
26
59
900
6242
SAT
119
1320
Thu
16
116
1321
107
12
RR
117
1320
MON
42
7964
48252
24126
1301
5338
2905
3699
Thu
4159
11119
1301
722
1693
tie
86000 37748 124746 97297 37638
10324
1301
4872
2940
4150
WED
65000
67000
7964
35635 118635 98396 37636
5729
24183
MON
640
799
27490
102057
67985
17437
55645
34600
22940
22484
20529
70111
Table C.4 : Summarized LP output for Rule C in summer, iteration 2, part 1 of 5.
.
1
IncomiroRM
UsecIRM
Inventory(EOP)
Produced
Cod
Pollodc
Cod
Pollock
Cod
Pollock
Cod-1
MON
THU
121
122
43000
56000
42254
88000
78000
746
28493
WE)
123
1HU
FR
124
125
42254 26493
22178 59459
SAT
126
.:
16901
WED
Thu
RI
SAT
128
129
130
131
132
133
52362
42801
20353
33418
11069 29730 26181
9363
21400
9683
14272
Avalablelab
Harm
1320
880
440
Regular
Overtime
Labour slack
1320
1321
1321
880
440
880
440
880
440
1164
880
440
.1
-1
156
840:
Aficostfiguresereinthousend
k*MndiclOtmes(00061O
--alli
ft*
1HU
122
MON
121
WED
1HU
123
124
FR
125
SAT
126
UmmIRM,bmit
Iriventory(EOP). cost
Prodtmod, nmemmo
Cod
Pollock
Cod
Pollock
Cod
Pollock
ONJA
Repko
Overtime
labour cost
Regular
Overtime
RI
138
139
85000 101000
113000 103000
74849 74849 36304
59459
37838
38481
74725
63155
'113000 218000 177519 102793
39639
10151
97297
4707
37838
34430 34430
29730
16700
18919
21550 41846
1321
1361
1361
880
440
1321
880
440
841
880
440
840
920
440
920
440
1360
920
440
-1
-1
-1
-1
-1
-1
-1
-1
0
THU
WED
129
130
THU
131
RI
SAT
132
133
.
''''
'
fliCii
39640
36303
1321
128
SAT
140
1359
920
440
26323
5885
19820
1361
881
920
440
880
-1
-1
1
MON
1HU
WED
THU
FR
SAT
135
136
137
138
139
140
4930
3955
4341
5858
3605
4341
10
57
''''Tcc'ec':'
2494
1980
3944
2730
2451
2451
1
28
5104
26
87
5104
1537
776
56
3200
5394
3325
4214
2081
1833
20
48
26
7719
Pot-1
UmWrobour
Ammilablebb
THU
137
880
440
MON
OW-2
Pol-2
Hours
WED
136
1321
EON
kiY ..:&::
McomOgRM, ant
1HU
135
880
440
::: 127
-:.i:
KIN
1321
Regular
Overtime
11766
42902
21451
Poi-2
Usedlabour
.
11768
95000 52199 140199
10597
....
67000
88000
72647 20353 55234
Cod-2
Pot-1
THU
93000
95000
56000 134000 111822 52362
16901
a
MON
1320
880
440
572
418
1320
880
440
572
418
1630
4370
3849
1321
880
440
572
419
1321
1184
880
440
572
269
080
440
572
419
840'
1321
880
440
572
419
1180
1498
28
2183
3146
1321
880
440
572
419
3886
3080
3204
12
70
2924
3297
682
1502
49
2081
2106
1347
2615
2210
36
108
89
51
20
7953
7953
3858
1381
1361
920
440
598
419
2607
1360
920
440
598
418
1324
19
1387
1421
3153
4370
2781
1321
1321
1321
841
880
440
572
419
880
440
572
419
880
440
572
419
840
799,
.v.----
920
440
598
419
5063
1359
920
440
598
417
3869
712
2914
1361
Bel
920
440
598
419
880
837
Table C.4 : Summarized LP output for Rule C in summer, iteration 2, part 2 of S.
4
333
MON
THU
WED
THU
ME
142
143
144
145
146
59000
34000
30657
28343
1557
28343
39000
37000
29449
,.JI
SAT
147
-
779
150
%ED
151
THU
MO
SAT
152
153
154
JK
_
.....
70000
56000
\ 88000
9551
26002
11760
149
73000
45455
41441
9551
11337
THU
7
MON
THU
MW
156
157
158
..... -.
45455 24545
29423 63984
16182
920
920
440
920
920
440
921
921
920
440
920
402
440
440
439
439
440
ati
MON
THU
MW
THU
MR
1113
142
143
144
145
146
23411
11018
18182
83964
12601
1420
960
460
880
._
SAT
147
23411
92422
28458
9616
14712
91982
11705
1289
31962
47000 57000
62000 48000
47000 57000
25490
7556
MR
SAT
MON
160
161
163
THU
184
MW
THU
FR
*AT
165
166
167
186
19000 26000
26000 43000
19000 26000
63984
41441
19101
46000
49000
45455
6650 43243
8699 43243
545
49000
64962 105405 41441
0627
21620 16599
12748
3776 31062
'
7600
18182
20721
9550
10400
3328 21622
1421
1420
1421
1421
520
960
460
1421
960
400
1421
960
480
980
400
1421
1421
1421
960
460
921
960
460
960
460
1016
980
460
960
460
920
960
460
960
960
460
961
920
400
-1
-I
-1
-1
.1
-1
402
460
459
-1
.......
-1
?.$usr
MON
THU
MW
THU
MO
1011
149
ISO
151
152
153
:
THU
159
.
34500
20721
958
920
440
75000
95000
75000
2576
24545
66000 60796 116798 87375
3820
14001
27545
25202
27545
34000 32443 09443 41441
12263
0
MON
SAT
154
:x.x.x.*
::ii
MON
:::
156
THU
157
VIED
MU
RV
158
159
100
-- -.
SAT -:::4014::::
101
***
980
460
545
49000
218
24600
1420
980
460
1108
960
460
920
314
MON
THU
MW
THU
RI
SAT
103
164
165
166
167
166
'
3422
1190
1778
1644
2262
1295
1708
54
28
17
16
3424
35
3557
114
........,
9010
2636
1450
920
920
440
595
0
920
920
440
598
0
23
43
5491
21
1154
2056
3048
921
921
920
440
598
920
440
596
I
1598
4060
1960
2636
882
10
3703
958
920
440
598
30
4234
554
980
30
3327
25
56
5491
1852
1420
900
460
624
437
.
880
1
-
1421
960
460
024
438
1420
900
400
824
437
4350
3325
1424
1030
00
2239
2726
2170
2726
892
46
14
32
4350
2239
819
3306
1680
3308
264
4701
1102
610
1102
2239
12
2163
4701
1721
7970
190
4701
4994
1874
63
2001
4296
555
1421
1421
520
1421
1421
960
460
624
435
1421
960
460
624
438
1421
1421
960
480
624
438
960
480
824
438
900
460
624
438
960
460
624
436
960
460
824
436
494
2668
1716
2636
1514
32
1715
1
44
2965
920
689
1450
1506
1505
1506
233
21
3
2295
22
3141
9040
1404
469
3176
921
1018
980
960
460
024
981
960
460
624
55
920
675
...................
0
26
5491
960
460
624
1
66
3602
1420
980
400
624
437
1106
960
460
624
139
920
Table C.4 : Summarized LP output for Rule C in summer, iteration 2, part 3 of 5.
-.14
W:...: 07:5:
NON
170
THU
171
WED
172
Thu
173
HE
174
SAT
175
,.:
MON
Thu
MED
Thu
HI
177
178
179
160
181
.
SAT
162
11
_
eeetUE''
MON
Thu
WED
Thu
NE
36E
184
185
186
187
188
44000
53000
38412
5586 25608
SAT
169
%.
,
M:::::W
i,
47000 54000
66000 52000
46697
45455
303
8849
8449
51512
39000
48000
39000
40000 48000
39000 45000
18182
1420
1420
980
460
3540
36412
1588
11175
9063 63964 41441
15600
11175
38328 24503 43169
06000 118000 66468 105405 41441
17491
1366
38412
39000
15365
.
15365
4470
8400
19164
12251
21585
1201
1201
959
800
400
:
960
460
25756
4541
31982
20721
1421
1421
1421
921
1200
960
460
1200
980
460
960
460
920
800
400
600
400
-1
-1
-1
-1
800
400
800
400
-1
-1
MON
THU
170
171
2726
2310
2708
3132
0
9
59
5491
NED
172
1620
2636
513
1803
5282
315
1420
990
480
624
437
1420
960
480
624
437
Thu
ME
173
174
-101:
OTC::
Thu
178
MON
177
2262
2320
1880
1365
1575
2262
318
2228
2228
2239
99
1069
4711
3786
668
4701
1421
1421
1421
960
460
624
436
SAT
175
53
960
460
624
438
1450
21
960
460
424
438
2
11
20
4640
42
4840
3048
921.
920
875
1200
800
400
520
380
THU
ME
179
160
161
2784
1200
600
400
520
380
.
780.
SAT
182
1218
1218
1341
858
18018
601
400
800
800
400
800
400
401
800
400
129
400
399
399
SOO
Thu
WED
THU
Hi
185
166
187
186
324
1412
6
22
2537
2617
1801
3173
1201
1201
800
400
520
800
400
520
959
800
400
520
381
381
151
27
4640
6
675
RE
SAT
194
195
196
1914
1715
1485
429
897
7
31
16
3093
893
'.
780
1200
800
400
520
380
1071
800
400
520
257
800
800
400
520
0
49000
73000
38747
10253
39626
,
760:
:0C
1$0
SAT
169
'
27027
17117
1201
1201
761
800
400
800
400
800
400
600
400
SOO
400
760
-1
-1
-1
-1
-1
MON
THU
191
192
838
601
600
400
520
801
1
1
800
400
520
MED
193
2842
2555
2247
1578
11
2649
50
THU
RI
194
195
EAT
100
595
1387
1892
44
1230
17
1198
10
27
1164
84
4564
65
3314
760:
34234
1200
1261
1844
34234
1201
4460
3500
3830
r
54054
1201
7018
2964
10958
45068
10253
54914 127914 88288
15179
4101
30380 5040
368
22543
10813
2957
164
1511
23
1350
10243
12817
1071
Thu
193
10957
100000
MON
2552
1855
2228
770
648
1200
800
400
WED
192
25834 36036
12670 81870 36038
2235
THU
191
77000
100000
66043
7392
7392
20165
241
NED
33000
49000
40330
5588
53000
15365
84000 45872 43189
.
33
21000
22000
21000
INON
1201
1201
600
400
520
800
400
520
381
381
2913
3973
2616
1200
800
1201
1201
761
400
520
380
400
520
800
400
520
780
381
381
723
SOO
Table C.4 : Summarized LP output for Rule C in summer, iteration 2, part 4 of S.
12
MON
THU
198
199
WM
200
101000 109000
116000 90000
88043 66043 66043
34957
77914
THU
MR
SAT
201
202
203
11672
54061 65934
29
44227
THU
WRIO
THU
MR
SAT
SIM*
MON
THU
NED
THU
205
MR
206
207
SAT
208
209
210
51*
212
213
214
215
218
217
30360
30360 30380
5461
23474 104474 69422
1042*1
13200
30265 36923
22114
8763
1421
980
460
-1
1201
1201
1199
1199
23385.
759
600
400
BOO
800
400
800
400
800
400
760
983
960
460
-1
-1
I
437
-1
1
.
1
004c
MON
THU
NED
THU
MN
SAT
%.
198
199
200
201
202
203
5858
4060
3830
0322
3150
3830
35
58
78
103
103
76
7018
7018
7018
1262
3830
689
1893
A.
:::
,
1201
1201
600
400
520
381
800
400
520
$00
400
520
391
311
16162
5458
30000
$456
30000
11760
6216
1462
2729
1420
1421
1421
121
960
480
960
460
960
460
920
-1
-1
799
THU
MED
205
206
207
1914
1435
1914
2308
31982
1546
3826
2835
2636
613
DIU
208
1192
1227
MR
SAT
200
210
960
460
960
3605
1199
$00
400
520
379
4468
1199
600
400
520
379
22
2830'
759:
760
721'
BMW
12
52
3986
5491
3251
1288
983
060
460
624
22
1421
960
460
624
435
THU
MR
221
222
223
28522
920
060
460
40
15000
14261
746
980
480
214
1361
960
460
980
920
,
'
MON
212
Thu
213
SRO
214
191
Thu
215
MR
SAT
216
217
2110e
Ali
.,,....
3
3557
2576
4701
401
1421
1421
121
960
460
624
436
900
460
624
438
920
115
960
460
596
960
460
598
960
460
598
920
4966
19620
1361
881
920
440
1120
440
920
440
920
440
020
440
860
-1
-/
-1
-1
-1
MON
THU
WED
THU
MR
SAT
219
220
221
222
223
224
4
i
17414
211159
308
748
960
480
598
83359 39640
1380
3886
2520
3880
6
4250
2096
3248
2276
2525
2139
0
2205
920
960
480
598
12468
16359
40
30580
998
15
12466
43719 39640
1361
3
35
2482
4420
25690
SAT
224
1361
2320
1260
2320
14$
1050
56000
65000
43534
61119
7476 7947$
1020
960
460
960
101
101
.
.
1420
960
460
824
437
NMO
220
--., ,,.
21
43
THU
219
18400
1856
1050
1708
2239
MON
40000 67000
36000 72000
40000 66899
2551
2551
17526
MON
12
1201
.
tI
:
1201
400
32000
30000
29449
'
20545
.
..
.
to
MON
33000 60000
41000 81000
33000 45455 20545
44228 17526
35052 83964
41758
11871
116000 206000 200000 151919 85985
..
''
:
40
1335
5934
723
1530
1387
12
9
12
42
20
5250
1508
4492
3213
2914
1361
1301
1361
1360
1361
$81
020
440
596
410
020
440
508
410
920
440
596
419
920
440
596
418
020
440
598
419
880
537
Table C.4 : Summarized LP output for Rule C in summer, iteration 2, part 5 of 5.
16
-fU
..
YOH
THU
NED
THU
MR
226
227
226
229
230
53000
69000
43534
9468
52000
49000
42887
47941
9408
9113
26618
SAT
231
?A2"
70000
81000
41613
41441
9113
3766
17155
23970
:::x4cior
tga
1360
1361
920
440
920
440
1340
920
440
-1
20
80H
226
Thu
227
234
235
28337
18613
28367
69000 21059 70059 41441
17414
233
62000
48000
41613
236
20367
29670
237
230
56559 21959
20357
81000 62387 110387 80517 21959
3845
16045
14309
20721
921
920
440
921
920
440
439
439
VMD
THU
MR
226
229
230
11355
16645
9300
680-
14935
29279
10079
1300
1301
1300
1301
660
420
1301
486
660
420
680
420
106351
680
420
660
420
640
70400
51700
-1
.1
352
-1
-Ape
SAT
231
ov::
6155
2181000
2394000
2161005
2304002
480205
5460419
520771
395176
1054257
150874
WON
THU
WED
233
234
235
Thu
236
MR
OAT --:*x.vorrAke:'
237
238
...,,,......,.. .. .. .......
3074
2416
2525
549
3016
1715
2467
1678
9
35
6259
4060
2835
2414
S
529
1002
1450
9
11
35
1143
5181
3524
1360
1361
920
440
598
416
020
440
598
419
1340
920
440
598
399
1846
651
26
21
1101
2103
3046
921
921
920
440
596
020
440
506
1
3590
1880
2414
41
31
5027
3429
55
5027
1
..... -
2050
709
40
2463
11
2195
4304
1814
164076
19345
488
108351
91206
1366
880.'
1162
1045
20
1300
1301
1300
880
420
572
399
1301
1301
680
420
572
880
420
572
399
880
420
572
400
880
420
572
400
400
125338
03790
125336
83700
460
4256
157273
840
464
70400
$1700
49530
33330
121164
116
ch
CNI
r-
re)
co
r-
0
r-
Day of year
Figure C.1 : Inventory level for LP model and simulation model in spring (Rule A, iteration 1).
Pol (LP)
Cod (LP)
Simulation
500
450
350
300
I
1111111
400
11111111IMMIL
mots
IIILIN 1
ii1111111111
IPIIMIIMIllt
taminumi II
g,
250
"C
200
11111 UM 111111111 111111111MIUNI
150
II WWI II= 1111111111111 111111 MINK
100
50
11 WV WE 11111111111111 V
'it
BA
1
1111
WIlilililiITTIMNIIIN
Will Wiltillil it
004
MIMI 1
1111111
MU
We
co
(NI
I.')
<NI
Day of year
Figure C.2 : Inventory level for LP model and simulation model in summer (Rule A, iteration 1).
117
350
300
250
200
t,
150
IOU
50
r-
Ln
(NI
Ln
r-
40
co
Day of year
Figure C.3: Inventory level for LP model and simulation model in spring (Rule C, iteration 2).
rf.
Tr
Tr.
Pol (LP)
Cod (LP)
U')
40
40
N
o
Simulation
0
N
Ch
1-
0
co
tN
C.1
Day of year
Figure C.4 : Inventory level for LP model and simulation model in summer (Rule C, iteration 2).
(N1
Download