The Invent model 2009-03-23 Invent version 0.5.2

advertisement
The Invent model
2009-03-23
Invent version 0.5.2
1. Introduction
Invent is a software application for solving maritime inventory problems. A problem
contains a number of ports with storages that produce and consume goods. A fleet of
vessels is available to transport goods between the storages. In addition, the problem
can contain bookings, which represent discrete amounts of goods that should be
transported independently of the storages. For this problem, Invent produces a plan
that aims to keep stock at the storages within the legal limits while minimizing
operations costs and maximizing income.
This document describes the range of problems and situations that Invent can model.
2. Time
Invent represents a point in time as a whole number of minutes since January 1. 2000,
00:00 UTC. All durations must be (rounded to) a whole number of minutes.
If less precision is desired, Invent can use a coarser time granularity, e.g. one hour.
The time format in input/output files is based on ISO 8601: “2008-03-12 12:56”
(UTC).
A period start and time horizon are usually given to define the period that Invent
should plan for.
3. Products and cargo
An Invent model can contain several types of goods, called products. Each product is
defined by the following:
 A name
 A unit
 Weight (MT) per unit
 Volume (m3) per unit
For instance, a product may be “Rocks”, which is measured in the unit “m3”, with
weight 5 MT/m3 and volume 1 m3/m3. Another possible product is “Socks”, measured
in “pairs”, at 0.00003 MT/pair and 0.0001 m3/pair.
A certain quantity of a certain product is called a cargo. A cargo has the following
attributes:
 Product
 Quantity
 Weight (MT)
 Volume (m3)
So, a cargo might be 3 units of the product Rocks. Using the data above, we can
calculate the cargo’s weight as 15 MT and the volume as 3 m3.
Normally, a product has a fixed weight and volume per unit. However, it is also
possible to define a product with variable weight or volume per unit. Then, different
weights or volumes per unit can be given for cargoes produced at different sources,
and the weight and volume per unit of cargoes can vary through mixing in vessels and
at delivery sites.
A collection of cargoes is called a cargo set. At most one cargo for each product may
be present in a cargo set. Cargo sets can be added and subtracted in the natural way.
Thus <1 unit Rocks and 3 units Stones> plus <1 unit Rocks and 2 units Socks> equals
<2 units Rocks, 3 units Stones, 2 units Socks>.
4. Vessels
Vessels are used for transporting goods. The following attributes are given for a
vessel:
 Name
A number of other attributes can be given for a vessel as well; we will mention these
where appropriate instead of giving a full list here. The same principle applies to other
objects.
4.1 Vessel storage
Each vessel has one vessel storage, where goods are stored. Its attributes are:
 Name
 Weight capacity (MT), possibly infinite
 Volume capacity (m3), possibly infinite
At any time, the goods stored in a vessel storage can be represented as a cargo set.
The total weight and volume of this cargo set cannot exceed the storage’s capacity.
As a simple approximation of storage in tanks or cargo holds, one can restrict a vessel
storage so that it may not contain more than a certain number of different products at
any one time.
4.2 Tanks
To model in more detail how a vessel stores goods, one can define a vessel storage
with tanks. Each tank has the following attributes:
 Name
 Volume capacity (m3)
When a vessel storage has tanks, Invent will distribute the goods transported over the
tanks. Each tank can hold only one cargo, i.e. just one product, at any one time, and
no more than its volume capacity.
5. Ports
Ports are where the vessels dock to load and discharge goods, among other things. A
port is defined by:
 Name
 A location (see below)
5.1 Port storage
A port can contain one or more port storages, where goods are produced, consumed
and stored. A port storage can be producing or consuming, but not both.
Each port storage consists of one or more tanks, and for each tank, the following are
given:
 Name
 Product
 Volume capacity
 Lower volume limit
 Nominal production/consumption rate profile
 Reduced production/consumption rate profile
Each tank holds a single product, which may not change during the planning period.
A vessel may only load or discharge this product from/to the tank. The content of the
tank is at all times a cargo of that product, with a volume no more than the tank’s
volume capacity and not less than the lower volume limit.
The contents of a port storage tank changes through production or consumption. This
production/consumption is given as a rate (units/hour) that can vary with time
according to a given profile. The production/consumption is added both during
loading/discharge and while no vessel is loading or discharging.
One may also give a reduced rate profile. This gives Invent the opportunity to reduce
the production/consumption rate in some time periods if this can help make a feasible
or better plan. At all times, Invent will choose a rate between the nominal and the
reduced rate. Normally, there is a cost associated with reducing the rate.
5.2 Contracts
By default, Invent is free to manage port storages as it wants to, as long as the stock
levels are kept legal. But it is also possible to assign contracts to port storages, in
order to exercise more control over storage management.
At the moment, Invent requires either that the problem contains no contracts, or that
contracts are always used, with at least one contract for each port storage.
A contract contains the following data:
 Name
 Type (sale or purchase)
 Product
 Nominal volume interval
 One or more storages
 One or more time slots
 One or more period limits, giving the following:
o Total quantity interval
o Start and end of time period
o Destination (or origin) storages that can receive (or deliver) product
When contracts are in use, they restrict the legal solutions as follows:
 Each loading or discharge at a port storage must be associated with a contract.
The contract product must match, and the storage must be listed in the
contract.



The volume of each loading/discharge under the contract must fall inside the
nominal interval.
The time interval spent in each loading/discharge under the contract must fall
inside one of the contract’s time slots.
For each period limit, the total quantity shipped from/to the origin/destination
storages in the time period should lie within the given quantity interval. If no
origin/destination storages are given, the limit covers all origins/destinations.
5.3 Locations and sailing times
Each port has a location. A location is basically defined by an ID string. It may also
have positional data such as latitude and longitude, but these are not used by Invent.
The sailing time between locations, and thereby between ports, is given by a table.
Each entry in the table contains:
 Vessel
 From location
 To location
 A minimum weight
 A maximum weight
 The distance
 The sailing time
 The sailing cost
The entry defines the sailing distance, time and cost when the given vessel sails
between the given locations while the total weight in its storage is between the
weights given. Thus it is possible to model that sailing is faster or less expensive
when in ballast than when laden, or one can model different sailing routes that are
available depending on the laden quantity. If the minimum and maximum weights are
omitted from an entry, the entry is valid for all weights.
If there is no entry for a (vessel, from, to) combination, then that sailing is not
allowed.
6. Bookings
A booking represents a request for transportation that is not related to port storages. It
contains a number of visits, which have the following attributes:
 Type. Either Load or Discharge
 Product. The product to load/discharge
 Port where the loading/discharge takes place
 Laydays. The earliest time that loading/discharge may start
 Cancelling. The latest time that loading/discharge may start
 Minimum quantity loaded/discharged
 Maximum quantity loaded/discharged
 Minimum/maximum volume loaded/discharged
 Minimum/maximum weight loaded/discharged
The booking is serviced when the plan contains cargo actions that cover all the visits,
loading and discharging total amounts that fall within the quantity limits.
The normal type of booking, a simple booking, has two visits—one Load and one
Discharge—with matching product and quantity limits. To service this booking, a
vessel must pick up a cargo matching the specifications at the Load visit and deliver
an identical cargo at the Discharge visit.
Another type of booking is the onesided booking, which contains only one Load or
Discharge visit. A vessel serving this booking must match it either against another
onesided booking that is similar but opposite, or against goods loaded/discharged at a
port storage.
7. Transportation plans
The output from Invent is a plan for transporting goods between port storages (and
visits). Each vessel in the problem receives a vessel plan, which consists of a
chronological sequence of port stays and actions.
7.1 Port stays
A port stay describes a time interval during which a vessel is docked in a particular
port. It is defined by the following:
 The vessel docking
 The port being visited
 The arrival time
 The departure time
As a special case, a port stay may give a location instead of a port. This is chiefly used
to indicate a vessel’s starting position that is a point at sea.
7.2 Cargo actions
Each port stay in a port may contain one or more actions that describe events taking
place while the vessel is docked. The common type is a cargo action, which describes
goods being loaded or discharged. It has the following attributes:
 Type: load/discharge
 The vessel performing the action
 The start time
 The end time
 A cargo set representing the goods transferred
 Where the goods is loaded from or discharged to. This can be a port storage or
a visit in the port.
The time required to complete a cargo action can be controlled in a number of ways:
 A visit can specify a fixed required time.
 A port can specify a fixed duration applicable to all actions in that port.
 For each port/vessel/product combination, a load speed and discharge speed
(in units/h) can be given. If the speed is given, the duration is computed as the
quantity divided by the speed.
 Each vessel and port can provide load and discharge speeds for each product.
The actual speed is then determined as the highest speed provided by either
port or vessel, but limited to the maximum speed allowed by both port and
vessel.
8. The initial state
As a starting point for planning, Invent must know the state of vessels and port
storages at the start of the planning period. Thus the following are part of the problem
specification:
 For each port storage, an initial time is given, together with the stock levels of
the storage at that time. Invent will not plan any actions for the storage before
its initial time.
 An initial plan is given. For each vessel, it contains a vessel plan with at least
one port stay. As a minimum, this may be a port stay either at sea or in a port,
with no cargo actions. The port stay defines the vessel’s starting location and
time, as well as the initial state of its storage. Invent will never change this
port stay or insert any earlier port stays.
The initial plan for a vessel may also contain more than one port stay,
detailing some of the vessel’s operations. Invent will keep these port stays in
the plan, but may move them in time and insert other port stays in-between,
unless this is explicitly forbidden.
9. Additional model elements
Invent supports more things.
9.1 Boil-off
Boil-off describes a vessel storage where some of the goods in the storage continually
boils off and disappears. It is intended to model transport of LNG. For each vessel, the
following can be given:
 A boil-off rate while sailing laden
 A boil-off rate while sailing in ballast
 A boil-off rate while idling in port
All rates are expressed in m3/hour. As the time spent loading/discharging usually is
small compared to the time spent sailing, we assume that no product boils off during
load/discharge.
As an option, boil-off can be computed using nominal sailing times instead of actual
times. That is, boil-off between port stays is regarded taking place only during the
standard sailing time between the ports, even if longer time is actually used, and there
is no boil-off during idling in port.
Boil-off can only be used when the problem contains just one single product, and
vessel load/discharge quantities are restricted to full vessel loads.
9.2 Tank cleaning
If a problem has vessels where tanks are modelled and there is more than one product
defined, it is possible to place restrictions on which products may follow one another
in the same tank.
A cleaning table is given, containing entries with the following information:
 From product
 To product
 Cleaning time
 Cleaning cost
Whenever the ‘to product’ is loaded into a tank where the last product discharged was
‘from product’, that tank must have been cleaned in-between for a total duration given
by the cleaning time in the table.
To clean tanks, Invent inserts cleaning actions into the vessel’s plan. These actions
take place at sea, between port stays. Their properties are:
 Start time
 End time
 One or more records of:
o The tank cleaned
o The product cleaned from
o The product cleaned to
Only one set of tanks can be cleaned at one time, and must be completed before a new
cleaning can be started. Different tanks can be cleaned between different products at
the same time. Cleaning can not take place during port stays, but a cleaning in
progress may be suspended during a port stay and continue afterwards, in another
cleaning action.
9.3 Maintenance periods
A number of maintenance periods may be included in the problem, each one
specifying:
 The vessel
 The port where maintenance takes place
 A time interval for arrival
 A duration
Invent is then required to ensure that the vessel has a port stay (with no actions) in the
specified port, starting in the given interval, with the required duration. The vessel
must be empty of goods at the arrival to this port stay.
10. Constraints
There are a number of conditions, called constraints, that must be satisfied in order to
make a plan legal. A number of these have already been mentioned above. Others are
rather obvious; for instance, the time between two port stays for the same vessel must
equal at least the sailing time between the ports. Below we list the non-obvious
constraints that must or can be applied.
10.1 Single action for port storage
It is not possible for two different vessels to load or discharge for the same port
storage at the same time. The main reason for this is to avoid complications with
defining the port storage’s state when one action is finished and the other continues.
10.2 Vessel/port compatibility
One can define a table that lists combinations of vessel and port, where the vessel is
not allowed to have a port stay in that port.
10.3 Arrival/departure limits; draft
A table can be given that for a vessel/port combination gives the maximum weight
that the vessel is allowed to carry when entering the port, and the maximum when
exiting. Draft restrictions are a typical reason for such limits.
10.4 Locks
It is possible to lock parts of the initial plan given to Invent, thereby ensuring that
Invent does not change these parts during optimizing. The following can be locked:
 Arrival or departure time of a port stay
 Start or end time of an action
 A port stay may not be removed from the plan
 No port stay may be inserted between this port stay and the previous one in the
same port
 No port stay may be inserted between this port stay and the previous one for
the same vessel
 No cargo action may be inserted between this action and the previous one for
the same port storage
10.5 Full vessel loads
If this constraint is in effect, every cargo action must load or discharge a full vessel
load (possibly minus what has been lost to boil-off).
10.6 Inter arrival gaps
A port storage may specify an inter arrival gap, which is the smallest time allowed
between one action for the storage is finished and the next one starts. The gap may be
different in different time periods.
10.7 Number of actions in period
A port storage can impose limits on the maximum number of cargo actions allowed
for that storage during various time periods.
10.8 Port closure periods
A port can have periods of time in which some operations are not allowed. The
possible types of closure are:
 Arrival. A port stay is not allowed to start in the period.
 Departure. A port stay is not allowed to end in the period.
 Docking. A port stay is not allowed to take place, in full or in part, during the
closure period.
 Operations. A cargo action may not start or end in the period. If there is a
closure period during an action, operations are suspended over the period. This
means that the action’s duration must be extended to include the closure time
in addition to the ‘active’ time spent actually loading or discharging.
11. Objectives
Invent’s goal is to produce a legal plan that is as good as possible. The notion of what
is ‘good’ is defined by objectives. Each basic objective measures some aspect of a
plan as a real number. For instance, one objective measures the total sailing cost of a
plan. The basic objectives may then be combined in various ways to create the total
objective, which Invent strives to improve.
Objectives may be combined either using weights or by priority. A weighed objective
is defined by listing a number of objectives along with a weight (a real number) for
each. The value of the combined objective is defined as the sum of value * weight
over the objectives. By using weights equal to 1, a weighed objective can be used to
calculate a simple sum, e.g. the total income as a sum of different types of income.
A priority objective is created by listing two or more objectives. If two plans have
different values for the first objective, this determines which one is better. If the
values are equal, one compares the values of the second objective instead, and so on.
A priority objective can express e.g. “first try to eliminate stockout/overflow, then
maximize profits”.
The basic objectives are listed below.
11.1 Contract income
Each contract can contain information about the cost of loading (if a purchase
contract) or the income of discharging (for a sale contract). This objective sums the
income for discharging under sale contracts and subtracts the cost of loading under
purchase contracts, across all cargo actions in the plan.
There are different cost structures that a contract may have:
 Free on board purchase (FOB). The contract contains a curve that gives the
purchase price per unit as a function of time. Different price curves may apply
depending on which destination port the goods will be delivered to.
 Weighted average sales price (WASP ). The purchase price is fixed within
predefined intervals, e.g. weekly or monthly. The price in each interval is
calculated as the average sale price obtained for all goods discharged and/or
consumed at one or more consuming port storages within a defined period,
multiplied by a ‘netback’ factor. If you don’t actually need this, you don’t
want to know.
 Ex-ship sale. This is similar to a FOB contract, with a sale price curve that
may depend on the origin port.
11.2 Stream income
Each port storage may provide a curve for each product which describes the product’s
price at that port storage over time. The objective measures the total value of the
goods consumed in consuming port storages, minus the total value of goods produced
in producing port storages.
11.3 Booking income
Each booking can specify an income, which is added to this objective if the booking is
serviced in the plan. The income is composed of two parts: a lumpsum, which is
fixed, and a rate-based income, which is proportional to the quantity transported for
the booking.
11.4 Port cost
A table gives the port cost for each combination of vessel/port. This objective sums
the port cost over all port stays in the plan.
The objective may be adjusted with the options:


Do not add port cost if the port stay is in the same port as the vessel’s previous
port stay
Do not add port cost for the first port stay in the vessel’s plan (which gives the
initial state)
11.5 Sailing cost
This objective sums the sailing cost from each port stay to the next for all vessels.
11.6 Service cost
Each vessel may be given a service cost per hour, which is applied to the duration of
each port stay in the plan.
11.7 Waiting cost
If a vessel has more time between one port stay and the next than given by the
calculated sailing time, the difference is termed waiting time. A cost per hour can be
given to this time per vessel, and this objective sums up the cost.
11.8 Reduction cost
A cost per quantity can be given for each port storage, which is applied to the quantity
not produced/consumed in port storages during times when a reduced rate is used. The
objective sums the cost over all port storages.
11.9 Relet cost
Each booking may be assigned a relet cost, which is added to this objective when the
booking is not serviced in the plan.
11.10Cleaning cost
This objective sums the cost of all cleaning actions in the plan, as given in the
cleaning table.
11.11Transported quantity
This objective measures the total quantity of goods transported in the planning period,
either by summing the total quantity loaded in cargo actions, or by summing the total
quantity discharged. These values may differ when goods are loaded before the time
horizon but discharged after, or if a vessel’s initial state includes cargo.
11.12Reduced quantity
This objective measures the total quantity not produced/consumed in port storages
during times when a reduced rate is used.
11.13Stockout/overflow quantity
Invent may not be able to keep stock levels in port storages legal at all times. When
the stock level in a producing storage hits the volume capacity limit, Invent will fix it
there until the next load action creates room for more production. We can imagine
either that production continues at the fully reduced level and the goods produced
spill over the storage top, or that production is (illegally) stopped during the period. In
either case, there is a surplus quantity, which this objective measures. The objective
also adds the deficit quantity associated with stock at consumption storages hitting the
minimum volume limit.
11.14Unmet contract quantity
A contract may specify the minimum total quantity that should be loaded/discharged
under the contract in certain time periods. If some of these limits are not met, this
objective sums the total deficit.
11.15Missing number of actions
A port storage can impose limits on the minimum number of cargo actions desired for
that storage during various time periods. The objective sums up the number of
missing actions that are required to meet these goals.
Download