|
An
example of a leading edge product in optimization is the complex freight
car planning system used by Green Cargo. This is an online system that
plans the distribution of empty freight cars. Within seconds after the
user places an order, the system lets the them know if there are any cars
available to be assigned to the order.
In
the first part of the optimization process, the specific cars are not
actually assigned to the order. Each station has a specific working schedule
of when their trains leave and the cars are to be sent as late as possible.
The decision to send cars, and where to send them, has to be made. When
this decision is made, certain cars are assigned to the order and the
cars are delivered to the customer just before the deadline.
The
second part of the optimization, which is run a few times a day, is a
more time-consuming process than the first part, where heuristic methods
are used. The mathematical models of arcs and nodes are not identical
since the node structures are built dynamically in real-time. However,
the same logical way of building the models is used in both parts and
this results in satisfying solutions to the primary objective, which is
to achieve a more effective flow of the empty freight cars.
The entire SJ fleet consists of some 11 000 freight cars and the system
minimizes the mileage of all the empty freight cars. An objective of a
system of this kind could be to decrease investments made in expensive
freight cars or to decrease the amount of cars needed. It could also be
to achieve a higher degree of maintenance of the cars. If we consider
the main objective of Green Cargo, which is to increase the use of their
cars, we can count on a considerable increase in capacity of about 30%
using this system. To get a better picture of how much money there is
to be saved by investing in a highly advanced optimization system, we
may assume that the increase in capacity results in a proportional decrease
in the amount of cars needed. This theoretical discussion means that the
fleet of freight cars can be cut by 3 300 cars. An ordinary freight car
costs about 100 000 USD, which means that we can theoretically save 330
000 000 USD by investing in a leading-edge optimization product. Regardless
of what the objective is, this system and optimization techniques are
a profitable piece of business.
The entire network of train stations and railroad throughout the country
of Sweden is mathematically represented as a network with arcs and nodes
in the optimization model, which is the core of this complex system. The
problem can be categorized, in terms of operations research, as a "multicommodity
minimum cost network flow" problem. The planning horizon is seven days,
so the trains' arrival times and other time limitations only exist on
a weekly basis in the system. However, since this is a real-time system,
all changes that affect the plans in any way, are updated constantly and
loaded into the internal representation.
Implementation and Architecture
The system is implemented in Java and consists of 700 classes. CPLEX is
used as the optimization engine of the final mixed integer program formulation
of the problem. The interaction with CPLEX is implemented in C. Rational
Unified Process (RUP) standards have been used throughout the development
and Rational Rose has been used as systemization tool. Corba and MQSeries
are used for interchange between the different parts of the system. The
object database, Objectivity, is used
i n order to keep data persistent. This also supports the
possibility of running the system in two separate processes, which is
an advantage in case of insufficient memory.
In figure 1 we can see the main architecture of the system. All data regarding
timetables, cars, orders, users, contracts etc. resides
in the IBM Mainframe.
The server is loaded with all necessary data from the mainframe. This
data is refreshed every night, in order to keep the information consistent.
Changes in data that influence the freight car planning are sent to the
server constantly throughout the day using the MQSeries connection.
|