[0001] The present invention relates to a method of balancing the load in a process for
sorting objects.
[0002] In particular, the present invention advantageously, but not exclusively, finds application
in balancing the load in a process for sorting postal objects and the following discussion
will make explicit reference thereto without any loss of generality thereby.
[0003] In fact, the method according to the present invention can also be utilised of balancing
the load in any sorting process performed by one or more devices able to separate
streams of objects to be arranged in a predetermined sequence for directing them to
addresses or destinations, where the capacity of the said device or said devices is
limited or expensive.
[0004] Machines are known for sorting and ordering post which receive at their input a stream
of postal objects disposed in an entirely random manner and generate at their output
an ordered stream of postal objects, that is to say a stream of postal objects disposed
in a predetermined progressive order which allows their sequential distribution by
one or more postman moving along a predetermined route.
[0005] The progressive order in which the postal objects are disposed at the outputs from
the postal machine is generally defined by a sequence of adjacent destinations or
addresses corresponding to street numbers or to groups of street numbers of buildings
disposed along the route where these postal objects are to be delivered.
[0006] Known postal machines generally comprise an input, also called induction, receiving
a set of postal objects, a plurality of outputs associated with respective containers
into which groups of postal objects are disposed, and a transport and direction device
(sorter) interposed between the inputs and the outputs and controlled by an electronic
processing unit having the function of directing each postal object towards a respective
output on the basis of a code generally printed on the postal object itself.
[0007] Moreover, each postman providing the service of postal object delivery is assigned
a respective group of outputs of the postal machine different from that assigned to
any other postman and from which at the end of the ordering process they extract the
postal objects entrusted to them for delivery.
[0008] The ordering process performed by the postal machine generally involves the performance
of a plurality of temporally consecutive sorting cycles by means of which groups of
postal objects already subjected to preliminary sorting are reintroduced into the
input of the postal machine and directed towards outputs associated with containers
from which the postal objects deposited in a preceding sorting cycle have been removed.
[0009] When these sorting cycles have been completed groups of postal objects are taken
from the machine disposed in a predetermined progressive order which allows their
sequential distribution by a postman who travels along a sub-section of a predefined
route.
[0010] Postal machines also exist which have two or more inputs communicating with a single
sorter device sending the postal objects towards groups of outputs associated with
respective inputs.
[0011] Each input of the postal machine cannot utilise outputs in common with the other
inputs and in this way, although the sorter device is shared, such postal machines
in reality comprise several separate independent machines.
[0012] Common disadvantages of known sorting processes reside in the fact that such processes
involve each output of the postal machine being associated with a predetermined number
of adjacent addresses of places which the postman assigned to this output will have
to serve and do not take account of the quantity of postal objects which must be delivered
to the delivery addresses.
[0013] Consequently, during a sorting process it can happen that one output from the postal
machine becomes filled, for example because there is a large user in one of the delivery
addresses associated with this output receiving a large quantity of postal objects.
[0014] In cases of this type interruption of the current sorting cycle is therefore inevitable
for the purpose of extracting the postal objects collected at the filled output.
[0015] Therefore, the filling of one output of the postal machine is enormously undesirable
in that it involves significant losses of time both due to the interruption of the
sorting cycle and to the numerous precautions which it is necessary to adopt in the
management of the postal objects before restarting the sorting process itself.
[0016] This situation becomes particularly serious when the filling of one output of the
postal machine is repeated several times during the various sorting cycles performed
during one working shift.
[0017] The object of the present invention is that of providing a method of balancing the
load in a process of sorting postal objects which makes it possible to avoid the most
likely situations resulting in filling of the outputs of the postal machine which
performs this process.
[0018] According to the present invention there is provided a method of balancing the load
in a process for sorting objects, in particular postal objects, the said sorting process
comprising a first and at least one second consecutive sorting cycle performed by
means of a machine receiving a set of objects at its input and providing at its output
the said objects identified and separated according to determined sorting rules; in
one given sorting cycle the objects being provided to the outputs of the machine according
to a respective predetermined sorting criterion and being again provided in an orderly
manner to the input of the machine itself for the performance of a subsequent sorting
cycle; the outputs of the machine being sub-divided, in the last sorting cycle of
the sorting process, into separate subsets each subset being assigned to a plurality
of respective destinations according to an assignment criterion correlated to the
order that the objects are to be delivered to the destinations;
the said balancing method being characterised by the fact that it comprises the phase
of performing, in at least one of the said sorting cycles, at least one of the following
procedures:
a) a first procedure of balancing the load at the outputs from the machine at the
end of the current sorting cycle based on at least one of the following balancing
criteria:
- displacement of the destinations from the outputs to which they are assigned to respective
logically contiguous outputs belonging to the same subset, according to a first predetermined
logic criterion;
- assignment of further outputs to the said subsets on the basis of an order of criticality
of the outputs already assigned to the subsets themselves; and
- bisection of destinations into respective pairs of virtually separate destinations
and assignment of each pair of virtually separate destinations to a respective pair
of logically contiguous outputs belonging to the same subset, according to a second
predetermined logical criterion; and
b) a second procedure of balancing the load of the output of the machine at the end
of the current sorting cycle based on at least one of the following balancing criteria:
- distribution over the outputs utilised in the current sorting cycle of destinations
assigned to each output at the end of the successive sorting cycle;
- displacement of destinations from the outputs to which they are assigned to respective
logically contiguous outputs according to a third predetermined logical criterion;
- exchange of destinations among logically contiguous outputs according to a fourth
predetermined logical criterion; and
- bisection of destinations into respective pairs of virtually separate destinations
and assignment of each pair of virtually separate destinations to a respective pair
of logically contiguous outputs according to a fifth predetermined logical criterion.
[0019] For a better understanding of the present invention a preferred embodiment will now
be described purely by way of non-limitative example and with reference to the attached
drawings, in which:
Figure 1 is a schematic illustration of a machine for sorting postal objects; Figure
2 is a matrix constituting a matrix representation of the load of postal objects at
each output of a postal machine performing a sorting process composed of two sorting
cycles; and
Figures 3a-3k illustrate a flow diagram relating to the balancing method which forms
the subject of the present invention.
[0020] In Figure 1 a postal machine is generally indicated 1, having an input I which can
receive a stream F of postal objects 2 (for example letters, postcards, documents
in envelopes or generally flat documents of approximately rectangular form) disposed
in sequence (for example stacked) and conveyed towards the input I itself by means
of a conveyor device 4 of known type (for example of belt type); and a plurality (N)
of separate outputs U1, U2, U3, ..., UN, with each of which there is conveniently
associated a removable container 6 (shown schematically) into which the postal objects
2 sent to this output are collected.
[0021] The stream F of postal objects 2 comprise a plurality of postal objects on which
a code has been printed in a preceding phase, for example a bar code, which can identity
the delivery address or destination of the postal object 2 itself; these postal objects
2 are in any event disposed in a sequence of "disordered" type, that is to say there
is no progressive order nor any relation between the disposition of the postal objects
2 and the progressive order in which they are subsequently to be delivered.
[0022] The input I of the postal machine 1 is associated with a separator device 10 (schematically
represented) receiving at its input the postal objects 2 supplied from the conveyor
device 4 and acting to cause extraction of the postal objects 2 from the stream F
and disposition of each postal object 2 into a spaced position with respect to the
other postal object 2 of the stream F; a reading device 12 (schematically shown) receiving
the postal objects 2 coming from the separator device 10 at its input and acting to
read the code associated with the postal objects 2 themselves; a delay module 14 (shown
schematically) receiving at its input the postal objects 2 coming from the reading
device 12; and a sorter device 16 within the postal machine 1 interposed between the
output of the delay module 14 and the outputs U1, U2, U3, ..., UN.
[0023] The postal machine is controlled by an electronic unit 22 of programmable type under
the control of which the sorter device 16 directs the stream F supplied at the input
I to all the N outputs of the postal machine 1, that is to say it operates a common
mode of transport according to which each postal object 2 supplied to the input A
can potentially be directed towards any of the N outputs.
[0024] The displacement of a postal object along the sorter 16, that is to say the path
T followed by a postal object 2 along the sorter 16 from the input I to a generic
output Ui, is determined by the code present on the postal object 2 read by the reading
device.
[0025] To this end, as will be described in more detail hereinafter, the electronic unit
22 is provided with a plurality of electronic tables (not illustrated) receiving input
data (for example from the reading devices 12) associated with the code printed on
each postal object 2, and supplying at its output a set of data which identifies the
selected output Ui towards which this postal object 2 must be directed.
[0026] The output data are then transmitted to the postal machine 1 to generate command
signals for actuator members, for example, paddle selectors, transmission members
etc (not shown) which contribute to provide, along the conveyor device 16, the path
T which leads the postal object 2 towards the selected output Ui.
[0027] The method of balancing the load according to the present invention will hereinafter
be described with reference to a postal machine performing a sorting process composed
of two successive sorting cycles.
[0028] In particular, in the first sorting cycle the postal objects are provided at the
input I of the postal machine 1 and then sorted towards the outputs U of the postal
machine 1 according to a first sorting criterion determined by means of the present
balancing method. The postal objects are then extracted in order from the outputs
and reintroduced into the postal machine 1 itself through the input I in a predetermined
reintroduction order for the second sorting cycle to be performed.
[0029] In the second sorting cycle the postal objects are sorted towards the outputs U according
to a second sorting criterion determined by means of the present balancing method
and then withdrawn from the outputs U to be delivered to the respective delivery addresses
by means of the postmen.
[0030] For descriptive convenience the following description will make reference to a postal
machine 1 having ten outputs without loss of generality thereby in that the inventive
principle on which the balancing method which constitutes the subject of the present
invention is based can be applied without any modification to a postal machine having
any number of outputs.
[0031] The description of the method of balancing according to the present invention will
be given by making reference to the matrix illustrated in Figure 2, which constitutes
a matrix representation of the load of postal objects at each output U of the postal
machine 1 at the end of each of the two sorting cycles constituting the sorting process.
[0032] In particular, each row of the matrix represents the load of postal objects of a
respective output U of the postal machine 1 at the end of the first sorting cycle
whilst each column of the matrix represents the load of postal objects at a respective
output U of the postal machine 1 at the end of the second sorting cycle.
[0033] The load of postal objects at the outputs of the postal machine 1 at the end of the
performance of the present method of balancing therefore makes it possible to derive
the sorting criteria to be used for the sorting process.
[0034] As illustrated in Figure 2, the matrix has ten rows and ten columns indicated with
respective progressive identification numbers. In particular, the identification numbers
of the columns are disposed in a progressively increasing order starting from the
column furthest to the left of the matrix whilst the numbers identifying the rows
are disposed in a progressively increasing order starting from the lowermost row of
the matrix.
[0035] Given the correspondence between rows and columns of the matrix and outputs of the
postal machine 1 in the first and second sorting cycle respectively, each number identifying
rows and columns of the matrix of Figure 2 also identifies a respective output U of
the postal machine 1 at the end of the first and second sorting cycle respectively.
The effective physical position of the output U in the postal machine 1 does not however
necessarily correspond to the progressive numbering of the rows and columns of the
matrix of Figure 2, that is the outputs of the postal machine 1 are not necessarily
disposed in a progressively increasing order corresponding to the progressively increasing
order of the identification numbers of the rows and columns.
[0036] In other words, the output of the postal machine 1 represented by the column identified
by the numeral "1" may not be physically the first output of the postal machine 1
itself, the output represented by the column identified by the numeral "2", which
column in the matrix is adjacent and successive to the first column, may not be physically
the second output of the postal machine 1 itself and nor need it be adjacent and subsequent
to the output represented by the column identified by the numeral "1".
[0037] Similar considerations apply also to the other rows and columns of the matrix of
Figure 2.
[0038] Therefore, the progressive numbering of the rows and columns is a numbering of "logic"
type to which corresponds a "physical" disposition of the outputs related to it by
a predetermined relation stored in the electronic control unit 22 and utilised in
the sorting process to direct the postal objects towards the desired output.
[0039] In the following description, therefore, the term "logically contiguous outputs"
will be understood to mean outputs of the postal machine 1 represented by rows or
columns identified with successive identification numerals, such outputs not necessarily
being physically adjacent to one another nor their relative position being deducible
from the identification numerals of the respective rows or columns.
[0040] Moreover, thanks to the unequivocal correspondence between the outputs of the postal
machine 1 and the rows of the matrix in the first sorting cycle and between outputs
of the postal machine 1 and columns of the matrix in the second sorting cycle, in
the following description the term outputs of the postal machine 1 and the terms rows
and columns of the matrix of Figure 2 will be utilised without distinction in the
two sorting cycles and according to descriptive convenience.
[0041] With reference again to the matrix of Figure 2, the cells of the matrix further assume
a precise significance related the delivery address or destination of the postal objects
and in particular each cell of the matrix defines a respective virtual position within
the matrix to which can be associated a real address of a place to which the postal
objects must be delivered.
[0042] Since the cells of the matrix, as known, are unequivocally identified by respective
pairs of numerical values indicative of the row and column of the cell itself, each
virtual position to which a delivery address can be associated can therefore be represented
by the pair of numerical values indicating the row and column of the respective cell.
[0043] Moreover, given the unequivocal correspondence between rows and columns of the matrix
and outputs of the postal machine 1 in the two sorting cycles, each pair of numerical
values indicative of the row and column of the respective virtual position also represents
the output of the postal machine 1 which the postal objects having a given delivery
address have to occupy at the end of the first and second sorting cycle respectively.
In the light of what has been explained above, the present method of balancing is
finalised by the creation of a table containing a plurality of data and defining an
unequivocal relationship between all the possible codes printed on the postal objects
2 (and able to identify, as previously mentioned, respective delivery addresses for
the postal objects 2 themselves), and corresponding virtual positions associated with
the delivery addresses indicated by these codes and each identified by a pair of numerical
values indicating the row and column of a respective cell of the matrix.
[0044] From this matrix, the method will easily deduce the rules for sorting the delivery
addresses of the outputs of the postal machine 1 at the end of the first and second
sorting cycle by assigning to a delivery address associated with a respective data
cell of the matrix the output of the postal machine 1 corresponding to the number
of the row of the cell in the first sorting cycle and the output of the postal machine
1 corresponding to the number of the column of the cell in the second sorting cycle.
[0045] Moreover, since the postal objects present in each output of the postal machine 1
at the end of the second sorting cycle are disposed in a predetermined order which
allows their sequential delivery by a postman travelling along a predetermined route,
and this order of distribution being defined by a sequence of adjacent delivery addresses
corresponding to house numbers or to groups of house numbers of buildings disposed
along the route of the associated postman, the relation between all the possible codes
printed on the postal objects 2 and the corresponding virtual positions defined by
the said table is such as to define a criterion for allocation of the delivery addresses
to the respective outputs of the postal machine 1 such as to allow the said order
of delivery of the postal objects to be respected.
[0046] In detail, for each group of columns associated with the postmen the relationship
defined by the table allocates the delivery addresses to the cells of the matrix according
to an allocation criterion increasing in the sense of the columns and the rows in
a manner described hereinafter.
[0047] In particular, the delivery addresses are allocated starting from the cell in the
first row of the first column of the matrix (the cell positioned lowermost in the
first column) up to the cell positioned in the last row of the first column of the
matrix (the highest cell in the first column) and then again starting from the cell
positioned in the first row of the second column up to the cell positioned in the
last row of the second column, and so on for the successive columns.
[0048] The criterion by which the delivery addresses are allocated to virtual positions
(that is to say to the cells of the matrix) therefore defines a constraint on the
cells of the matrix of Figure 2 forbidding any exchange of positions between the numerical
values represented in the cells of a column.
[0049] With reference again to the matrix of Figure 2, the first and second numerical value
indicative of the row and column of each cell of the matrix of Figure 2 assume a precise
significance related to the output U1 of the postal machine 1 which the postal object
to be delivered at the delivery address associated with the virtual position identified
by this pair of values occupies at the end of the two sorting cycles of which the
sorting process is composed and in particular the first numerical value indicative
of the row of the cell identifies an output Ui of the postal machine 1 at which the
postal object to be delivered to the delivery address associated with the cell will
have to be disposed at the end of the first sorting cycle, whilst the second numerical
value indicative of the column of the cell identifies an output Uj of the postal machine
1 at which the postal object to be delivered to the delivery address associated with
the cell will have to be disposed at the end of the second sorting cycle.
[0050] During each sorting cycle, the virtual position associated with it is determined
and the pair of numerical values identifying the row and column defining this virtual
position is utilised by the postal machine 1 to generate, via tables or sorting rules
deduced directly from the matrix, command signals for actuator members, for example
paddle selectors, transmission members etc. (not shown) which contribute to form,
along the sorter device 16, a path T which leads the postal object 2 towards the selected
output Ui.
[0051] In particular, the postal machine 1 utilises the first numerical value identifying
a virtual position (row number) to determine the destination output of the postal
object at the end of the first sorting cycle and the second numerical value identifying
the virtual position (column number) to determine the destination output of the postal
object at the end of the second sorting cycle.
[0052] With reference again to the matrix of Figure 2, numerical values appear in the cells
of the matrix itself to which a delivery address is allocated, these numerical values
assuming a particular significance related to the traffic of postal objects, and in
particular each numerical value can be correlated to the quantity of postal objects
expected delivery at the delivery address associated with the cell in which it appears.
[0053] In particular, the numerical value appearing in a cell can be indicative of the quantity
of postal objects in absolute or exact terms or else in terms of expected traffic.
[0054] Therefore, a numerical value appearing in a cell is indicative of the fact that this
cell has had allocated to it a delivery address having expected traffic or real traffic
indicated by the numerical value itself whilst the cells having no numerical values
appearing in them represent virtual positions available for the allocation of a delivery
address.
[0055] Therefore, for descriptive convenience, hereinafter, a cell containing a numerical
value will be indicated by the term "occupied cell", meaning that it is associated
with a respective delivery address, whilst a cell not containing any numerical value
will be indicated with the term "free cell", meaning that there is no delivery address
associated with it.
[0056] Moreover, the sum of the numerical values in each row and each column has associated
with it a precise significance related to the load (that is to say the quantity of
expected postal objects) at the output of the postal machine 1 corresponding to this
row or column and in particular the sum of the numerical values of each row represents
the load present at the output of the postal machine 1 associated with this row at
the end of the first sorting cycle whilst the sum of the numerical values of each
column represents the load present at the output of the postal machine 1 associated
with this column at the end of the second sorting cycle.
[0057] Referring again to the matrix of Figure 2, to the side and above the matrix itself
are illustrated first and second vectors each containing a number of fields equal
to the number of rows and columns respectively of the matrix, that is to say ten fields.
Each of the fields of the first vector shown to the side of the matrix is aligned
with a respective row of the matrix itself and each of the fields of the second vector
shown above the matrix is aligned with a respective column of the matrix.
[0058] In each of the fields of the first vector there is shown a numerical value equal
to the sum of the numerical values appearing in the cells of the row with which it
is aligned whilst in each of the fields of the second vector there is shown a numerical
value equal to the sum of the numerical values appearing in the cells of the column
with which it is aligned.
[0059] In this way a first and second vector respectively represent the overall load at
each output of the postal machine 1 at the end of the first and second sorting cycle
which comprises the sorting process of the invention.
[0060] As it is possible to see by analysing the numerical values shown in the first and
second above-mentioned vector, the matrix representation of Figure 2 is indicative
of a load situation at the outputs of the postal machine 1 which is very unbalanced
between the first and second sorting cycle. In fact, the first output (that identified
with the numeral 1) will have to contain 290 postal objects at the end of the first
sorting cycle and only 84 at the end of the second cycle. Therefore implementing the
balancing method which is the subject of the present invention will avoid such heavily
unbalanced situations which could involve, during the performance of the first sorting
cycle, an overload of the first output of the postal machine 1 and therefore could
make it necessary to interrupt the operation of the postal machine 1 itself for the
purpose of removing the postal objects from the outputs in which they have accumulated.
[0061] In Figure 2, below the matrix there is also illustrated a third vector comprising
four fields having different widths, aligned with respective groups of columns of
the matrix and identified with the letters A, B, C and D. In particular each field
of the third vector is associated with a respective group of columns with which it
is aligned and the identifying letter shown in it is indicative of the postman to
which this group of columns is allocated.
[0062] In detail, as illustrated in Figure 2, the field of the third vector identified with
the letter A is associated with the first and second column of the matrix, the field
identified with the letter B is associated with the third column, the field identified
with the letter C is associated with the fourth, fifth, sixth and seventh column and
the field identified with the letter D is associated with the eighth, ninth and tenth
column.
[0063] Therefore, this type of representation illustrates the situation in which a first
postman associated with the field identified with the letter A is allocated to the
delivery of the postal objects disposed, at the end of the second sorting cycle, in
the first and second output of the postal machine 1, a second postman associated with
the field identified with the letter B is allocated to the delivery of the postal
objects disposed in the third output of the postal machine 1, a third postman associated
with the field identified with the letter C is allocated to the delivery of the postal
objects disposed in the fourth, fifth, sixth and seventh output of the postal machine
1, and a fourth postman associated with the field identified with the letter D is
allocated to the delivery of the postal objects disposed in the eight, ninth and tenth
output of the postal machine 1.
[0064] From the preceding description in relation to the matrix representation of Figure
2, it is evident how this matrix representation allows complete and clear illustration
of the expected or real situation at the outputs of the postal machine 1 in each of
the two sorting cycles which comprise the sorting process, as well as the traffic
to each delivery address, the load of each postman and the postman who will have to
deliver the objects disposed in each output of the postal machine 1.
[0065] The method of balancing which is the subject of the present invention will hereinafter
be described by making reference to the flow diagram illustrated in Figures 3a - 3k
and to a sorting process having the matrix representation of Figure 2.
[0066] Moreover, the method of balancing will be described with reference to a sorting constraint
defined by the fact that the various postmen be assigned, at the end of the second
sorting cycle, separate outputs of the postal machine 1 in such a way as to avoid
the possible confusion which could arise if at the end of the sorting process postal
objects relating to the routes of different postmen would have to be present in one
output of the postal machine 1.
[0067] As illustrated in Figure 3a, the process initially starts at a block 10 in which
general information is acquired on the characteristics of the batch to be handled,
that is to say the sorting process to be performed, the number of postmen available
for the delivery service, the number of delivery addresses to be served, the traffic
of postal objects to each delivery address, known for example on the basis of historical
data, the total number of outputs of the postal machine 1, the number of outputs of
the postal machine 1 to be reserved for emergency situations, for example for use
in substitution for one or more inoperative outputs for the diversion of postal objects,
the maximum capacity of each output of the postal machine 1, a margin of tolerance
on the capacity of each output in such a way as to guarantee that a desired capacity
less than the maximum capacity of the output itself is not exceeded etc.
[0068] From block 10 the process leads then to a block 20 in which the number of outputs
of the postal machine 1 usable for the performance of the balancing method and the
desired capacity for each output of the postal machine 1 are determined.
[0069] In particular, the number of outputs usable for the performance of the balancing
method is determined by subtracting, from the total number of outputs of the postal
machine 1, a number of outputs reserved for emergency situations, whilst the desired
capacity for each output of the postal machine 1 is determined by subtracting the
respective tolerance from the maximum capacity of the output itself.
[0070] After the operations described with reference to block 20 there is performed a procedure
for testing the sufficiency of the resources for the performance of the method of
balancing and the sorting process.
[0071] If, using a method to be described below, this procedure establishes a positive result
for the sufficiency of the resources for the performance of the balancing method and
the sorting process, it generates, for example in the memory of the electronic unit
22 which implements it, a matrix representation similar to that of Figure 2 which
allows the allocation of the delivery addresses of the postal objects to the outputs
of the postal machine 1 during the first and second sorting cycle of which the sorting
process is composed.
[0072] In particular, from block 20 it leads to a block 30 in which it tests if the number
of postmen available for the delivery service is sufficient for the performance of
the balancing method, that is to say if the number of available postmen is less than
or equal to the number of outputs of the postal machine 1 effectively usable for the
balancing method.
[0073] In particular, if the number of available postmen is less than or equal to the number
of outputs effectively usable for the performance of the balancing method (output
`YES from block 30) then the method is potentially performable in relation to the
number of postmen which will be available to effect delivery, and therefore from block
30 it leads to block 40, otherwise if the number of postmen available is greater than
the number of outputs effectively usable for the performance of the balancing method
(output NO from block 30) then the balancing method terminates due to the impossibility
of performance because of the insufficiency of the available number of outputs of
the postal machine 1.
[0074] At block 40 there is determined the minimum number of separate outputs of the postal
machine 1 to be allocated to each postman and the minimum number of outputs which
it is necessary to utilise for the performance of the balancing method.
[0075] In particular, a minimum number of separate outputs to be allocated to each postman
is determined on the basis of the number of delivery addresses which each postman
must serve, the traffic to each delivery address and the number of delivery addresses
which can be allocated to each output of the postal machine 1, which is equal, as
mentioned above, to the maximum number of virtual positions which can be allocated
to each output of the postal machine 1 (that is to say equal to the number of cells
of each column of the matrix of Figure 2).
[0076] Once the minimum number of outputs to be allocated to each postman is known the minimum
number of outputs which it is necessary to utilise for the performance of the balancing
method is determined by summing all the minimum numbers of outputs to be allocated
to each postman.
[0077] From block 20 it then leads to a block 50 in which it is established whether the
number of outputs of the postal machine 1 usable for the performance of the balancing
method is sufficient for the performance of the method itself, that is to say if the
number of usable outputs for the performance of the balancing method is greater than
or equal to the minimum number of outputs which it is necessary to use as determined
in block 40.
[0078] In particular, if the number of outputs usable for the performance of the method
of balancing is greater than or equal to the minimum number of outputs which it is
necessary to use (output YES from block 50) then the balancing method is potentially
performable in relation to the number of available outputs of the postal machine 1
and therefore from block 50 it goes to a block 60, otherwise if the number of outputs
usable for the performance of the balancing method is less than the minimum number
of outputs which it is necessary to use (output NO from block 50) then the balancing
method is terminated due to the impossibility of performance because of the insufficient
number of available outputs.
[0079] In block 60 the number of virtual positions available for the performance of the
present balancing method is determined by subtracting from the theoretical number
of available virtual positions, equal to the total number of cells of the matrix of
Figure 2, the number of lost virtual positions (that is to say unusable positions)
because of the said constraint on the allocation of separate outputs to the various
postmen, which is determinable on the basis of the following considerations.
[0080] Having allocated a minimum number of separate outputs to each postman, that is to
say a minimum number of separate columns of the matrix of Figure 2, inevitably each
postman has been allocated a number of virtual positions, that is to say a number
of cells of the matrix of Figure 2, equal to a whole multiple of the number of cells
contained in a column, in particular equal to the product between the number of rows
of the matrix and the number of separate columns allocated to it.
[0081] Generally, however, the number of virtual positions allocated to each postman is
greater than the number of virtual positions which the postman himself would need
on the basis of the number of delivery addresses allocated to him and consequently
a given number of virtual positions allocated to each postman will not be usable by
him and will thus not be utilised in the balancing method simply because of the constraints
on the allocation of separate outputs to the postman.
[0082] Therefore, the number of virtual positions not utilised by each postman will be equal
to the difference between the number of cells of the matrix allocated to him and the
number of delivery addresses which must be served, and the total number of virtual
positions lost because of the constraint on the allocation of separate outputs to
the postmen will be equal to the sum of the numbers of virtual positions not utilised
by each of the postmen.
[0083] From block 60 it then leads to a block 70 in which it is established whether the
number of available virtual positions is sufficient for the performance of the balancing
method, that is to say if the number of effectively available virtual positions is
greater than or equal to the number of delivery address to be served.
[0084] In particular, if the number of effectively available virtual positions is greater
than or equal to the number of delivery addresses to be served (output YES from block
70) then the balancing method is potentially performable in relation to the number
of available virtual position and therefore from block 70 it leads on to block 80,
otherwise if the number of effectively available virtual positions is less than the
number of delivery addresses to be served (output NO from block 70) then the balancing
method is terminated due to the impossibility of performance because of the insufficiency
of the number of available virtual positions.
[0085] In block 80 it is established whether the maximum traffic which can be sorted by
the postal machine 1 is sufficient for the performance of the balancing method, that
is to say if the sum of the capacities of the outputs of the postal machine 1 is greater
than or equal to the number of postal objects to be sorted.
[0086] In particular, if the maximum sortable traffic is greater than the traffic to be
sorted (output YES from block 80) then the balancing method is potentially performable
in relation to the sorting capacity of the postal machine 1, the resource testing
procedure is terminated and from block 80 it leads to a block 90, otherwise if the
maximum sortable traffic is less than the traffic to be sorted (output NO from block)
the balancing method is terminated due to the impossibility of performance because
of the insufficient capacity of the postal machine 1 to sort delivery addresses.
[0087] In block 90 there is performed a preliminary allocation to each postman of a respective
group of outputs of the postal machine 1 on the basis of the number of delivery addresses
which each of them must serve and the number of virtual positions associated with
each output of the postal machine 1.
[0088] The matrix of Figure 2 illustrates the situation at the outputs of the postal machine
1 after the above-described preliminary allocation phase; in particular, the matrix
shows only the outputs of the postal machine 1 allocated to the postmen whilst the
outputs not yet assigned to the postmen and therefore available during the balancing
method for assignment of delivery addresses are not illustrated.
[0089] If the method of balancing has been terminated during the resource testing procedure,
the information on the reason for this procedure having been abandoned (insufficient
number of available postmen, insufficient number of available outputs of the postal
machine 1, insufficient number of virtual positions, insufficient addressing capacity)
are signalled in such a way that an operator can act consequently to modify the initial
conditions which have not permitted the performance of the sorting process.
[0090] After the preliminary allocation phase there is performed a procedure for improving
the balancing of the load of each of the outputs of the postal machine 1 at the end
of the second sorting cycle which forms parts of the sorting process.
[0091] In particular, this procedure operates directly on the matrix of Figure 2 for the
purpose of improving the balancing of the load in each of the columns of the matrix
itself and involves the performance of a first and second sub-procedure which are
consecutive in time.
[0092] In detail, from block 90 of Figure 3a the procedure leads to a block 100 of Figure
3b in which the first sub-procedure is performed, which will hereinafter be described
with reference to Figure 3d.
[0093] The first sub-procedure involves performing, for each pair of adjacent columns of
each group of columns associated with a postman, a simulation of the sorting of particular
delivery addresses between the two columns considered and then real performance of
the simulated sorting which determines the most consistent improvement in the balancing
of the load in this pair of columns, with consequent modification of the configuration
of the pair of columns considered.
[0094] It is evident that if none of the simulated sortings obtains an improvement in the
balancing of the load with respect to the starting situation, the configuration of
the pair of columns considered remains unchanged.
[0095] It is to be noted that these changes are made whilst respecting the initial allocation
criterion corresponding to the order of distribution of the postal objects to the
delivery addresses.
[0096] In practice the first sub-procedure causes a shift of the delivery address from the
outputs of the postal machine 1 to which they are allocated to logically contiguous
outputs of the postal machine 1 respectively associated with the same postman having
consideration for the criterion for allocation of the delivery addresses to the respective
groups of outputs.
[0097] It is evident that this first sub-procedure is only applicable when there are at
least two columns associated with a postman.
[0098] In detail, with reference to Figure 3d, initially it leads to a block 110 in which
a pair of adjacent columns to be examined are identified.
[0099] The columns are examined in succession in several iterations, starting from the first
two columns of the first group up to the last two on the basis of their increasing
numerical order. It is to be noted that the constraint on the allocation of the separate
outputs of the postal machine 1 to the various postmen requires that the identified
adjacent columns must belong to the same postman, that is to say to the same group
of columns, in that it is not admissible that a delivery address assigned to one postman
can be shifted into an output assigned to another postman.
[0100] From block 110 it then leads to a block 120 in which the loads TC1 and TC2 in the
columns under examination are determined, each of which is equal to the sum of the
numerical values represented in the cells of the respective column. In block 120 there
is moreover determined a numerical value TM1 equal to the greatest of the above determined
loads TC1 and TC2.
[0101] From block 120 it then leads to a block 130 in which the following two shifts are
separately simulated:
- the numerical value shown in the highest occupied cell in the first column of the
pair (that is to say the column on the left) is shifted into the lowermost cell in
the second column of the pair (that is the column on the right) and the numerical
values shown in the cells of this second column before the simulated shift are moved
upwards by one position;
- the numerical value shown in the lowest occupied cell in the second column is shifted
into the free cell of the first column immediately above the highest occupied cell
in the first column itself and the numerical values shown in the other cells of the
second column before the simulated shift are moved down by one position.
[0102] These changes are simulated only if the cells of the destination column in to which
a numerical value is shifted are not totally occupied.
[0103] In other words, taking for example into consideration the first and second column
of the matrix of Figure 2, associated with the postman identified with the letter
A, the two following changes are separately simulated:
- the numerical value "15" shown in the fourth cell of the first column is shifted into
the first cell of the second column and the numerical values "25" and "22" shown in
the first and second cells of the second column before the simulated shift are translated
upwardly by one position;
- the numerical value "25" shown in the first cell of the second column is shifted into
the fifth cell of the first column and the numerical value "22" shown in the second
cell of the second column is moved down by one position.
[0104] Block 130 then leads to block 140 in which the loads TC3 and TC4 on by the two columns
under examination in the first simulated shift and the loads TC5 and TC6 on the two
columns under examination in the second simulated shift are determined. In block 140
there is moreover determined a numerical value TM2 equal to the greater of the loads
TC3 and TC4 and a numerical value TM3 equal to the greater of the loads TC5 and TC6.
[0105] Block 140 then leads to block 150 in which is determined a numerical value Tm equal
to the smaller of the numerical value TM1 determined in the block 120 and the numerical
values TM2 and TM3 relating to the first and second simulated shift taking place in
block 140.
[0106] If the numerical value Tm is equal to TM2 or TM3 then the simulated shift of the
delivery address from one column to the other of the pair which makes it possible
to obtain a load equal to Tm in one of the columns examined results in an improvement
of the balancing of the load of the column examined, whilst if Tm is equal to TM1
then neither of the two simulated changes of the delivery address from one column
to the other of the pair makes it possible to obtain a load equal to Tm in one of
the columns examined which means there is no improvement in the balancing of the load
of the column examined and therefore the initial situation before the simulation is
the best.
[0107] Therefore from block 150 it leads then to block 160 in which it is tested whether
Tm is equal to TM1.
[0108] If Tm is equal to TM1 (output YES from block 160) then none of the simulated shifts
is performed, the configuration of the two columns is not changed and the process
goes on to block 180, otherwise if Tm is equal to TM2 or TM3 (output NO from block
160) then from block 160 it leads to a block 170 in which the simulated shift which
made it possible to obtain the smallest load equal to Tm is performed and the configuration
of the two columns is varied in dependence on the simulated shift.
[0109] Block 170 then leads to block 180 in which it is established whether there is a further
pair of adjacent columns to be examined in the same group of columns (that is to say
associated with the same postman) or, if the columns of one group have already been
all examined, in the next group of columns (that is to say associated with the next
postman).
[0110] If there is a further pair of adjacent columns under examination (output YES from
block 180) it leads from block 180 again to block 110 for repetition of the first
sub-procedure for a subsequent pair of adjacent columns, otherwise if all the pairs
of adjacent columns have been examined (output NO from block 180) then the first sub-procedure
ends.
[0111] With reference again to Figure 3b, having terminated the first sub-procedure, it
leads from block 100 to a block 190 in which it is tested if the improvement obtained
with the first sub-procedure is sufficient or if a time to has elapsed since this
first sub-procedure was started.
[0112] In particular, the improvement obtained is considered sufficient if the loads in
each group of columns associated with the various postmen are better balanced, by
a predetermined quantity, with respect to the loads which existed before the performance
of the first improvement sub-procedure.
[0113] The testing based on the time elapsed from the commencement of the first improving
sub-procedure serves on the other hand to allow performance of the first sub-procedure
only for a maximum predetermined time for the purpose of not excessively occupying
the resources which in practice implement the present balancing methods.
[0114] In particular, if the improvement obtained with the first sub-procedure is sufficient
or a time t0 has elapsed since this sub-procedure was commenced (output YES from block
190) then it leads from block 190 to a block 200 to perform operations for allocation
of further outputs to the postmen on the basis of an order of criticality of the outputs
already allocated to the postmen themselves, otherwise if the improvement obtained
with the first sub-procedure is not sufficient or a time t0 from the commencement
of this sub-procedure has not yet elapsed (output NO from block 190) then it leads
again from block 190 to block 100 for repetition of the first improvement sub-procedure
on all the columns of the matrix of Figure 2.
[0115] In block 200 it is tested whether from among the outputs usable for the performance
of the method of balancing, determined in block 20, there are any available to be
allocated.
[0116] If, among the outputs usable for performance of the balancing methods, there are
some available for allocation (output YES from block 200) then it leads from block
200 to a block 210, otherwise if from among the outputs usable for the performance
of the balancing method there are no more available to be allocated (output NO from
block 200) then it goes on to block 240 in which the above-mentioned second sub-procedure
is performed as described in detail hereinafter.
[0117] An order of criticality is assigned to the columns in block 210, which takes into
account not only the number of delivery addresses associated with each of the columns
but also the traffic at each of the delivery addresses. In particular, the said criterion
involves allocation of an order of criticality to the columns based on the highest
number of delivery addresses and, for the same number of delivery addresses, the greatest
traffic to the delivery addresses.
[0118] In other words, the most critical column will be that having the highest number of
occupied cells and the least critical column will be that having the lowest number
of occupied cells. Whenever two or more columns have the same number of occupied cells
the most critical column among these will be that containing the cell in which the
highest numerical value is shown and the least critical column that containing the
cell in which the lowest numerical value is shown.
[0119] From block 210 the process passes on to a block 220 in which the most critical column
is identified on the basis of the criticality order.
[0120] From block 220 the process then leads to a block 230 in which to the group of columns
containing the most critical column identified above (that is to say to the group
of columns allocated to the most critical postman) there is assigned a free column,
that is to say a column all the cells of which are free.
[0121] In practice, in block 230 a further output of the postal machine 1 to be utilised
for the sorting process is allocated to the most critical postman (that is to say
the one which is associated with the above-identified most critical column).
[0122] The allocation of a further column to the group of columns containing the most critical
column is obviously followed by a shift by one position of the columns of the subsequent
groups in the matrix, from that in which such column was assigned.
[0123] From block 230 the process then again leads to block 100 for repetition of the first
sub-procedure for improving the balancing of all the columns of the matrix of Figure
2 including that allocated in block 230.
[0124] As previously mentioned, whenever in block 200 it happens that there are no more
outputs usable for performance of the balancing method available to be allocated (output
NO from block 200) then from block 200 the process leads to block 240 in which the
second sub-procedure is performed.
The second sub-procedure involves performing, for each pair of adjacent columns of
each group of columns associated with the postman, a simulation of the bisection of
particular delivery addresses belonging to the columns considered into respective
pairs of virtually separate delivery addresses and their allocation to different columns.
[0125] According to the second sub-procedure, if a delivery address is bisected, it is removed
from the matrix and replaced by two new delivery addresses: the first delivery address
obtained by the bisection is allocated to the same cell in which the initial bisected
delivery address was located and the second delivery address obtained by bisection
is allocated to a cell disposed in the adjacent column to that in which the initial
bisected delivery address was disposed and belonging to the same postman. Moreover,
the traffic in the first and second delivery address obtained by bisection each have
a reduced traffic, typically half, with respect to the traffic to the initial bisected
delivery address in such a way that their sum is equal to the traffic to the initial
bisected delivery address.
[0126] First and second delivery addresses therefore replace the initial bisected delivery
address and in reality represent the same postal address which, via the said bisection,
will be differently and more conveniently assigned to the outputs of the postal machine
1 in the first and second sorting cycle. In the light of the above the first and second
delivery address obtained by bisection are therefore virtually separated.
[0127] In particular, each of the delivery addresses subjected to bisection is disposed,
as better described hereinafter, in a particular position in the columns considered
and is subdivided into first and second virtually separate delivery addresses, which
are then separately assigned to the columns themselves.
[0128] The simulated bisection which causes the most consistent improvement of the load
balancing of the pair of columns is then performed, with consequent modification of
the configuration of the pair of columns considered.
[0129] It is apparent that if none of the simulated bisections causes an improvement in
the load balancing, the configuration of the pair of columns considered remains unchanged.
[0130] In practice, by means of the second sub-procedure, delivery addresses are bisected
into respective pairs of virtually separate delivery addresses and each pair of virtually
separate delivery addresses obtained by bisection is allocated to a respective pair
of logically contiguous outputs of the postal machine 1, associated with the same
postman, comprising the output to which the delivery address from which this pair
of virtually separate delivery addresses formed by bisection originated and a logically
contiguous output allocated to the same postman.
[0131] Moreover, the allocation of each pair of virtually separate delivery addresses to
the respective pairs of logically contiguous outputs is performed whilst still respecting
the criterion by which the delivery address from which this pair of virtually separate
delivery addresses has originated upon bisection is allocated to the respective group
of outputs.
It is therefore evident that this second sub-procedure is only applicable when there
are at least two columns associated with a postman.
[0132] In detail, the second sub-procedure is similar to the first sub-procedure described
with reference to the flow diagram illustrated in Figure 3d and therefore will hereinafter
be described solely as far as it differs therefrom.
[0133] The second sub-procedure differs from the first sub-procedure only by the fact that
the simulations effected in block 130 are different from those described for the first
sub-procedure.
[0134] In particular, in block 130 the two following subdivisions are separately simulated:
- the numerical value shown in the highest occupied cell in the first column is subdivided
into first and second different but quantitatively similar numerical values of traffic,
the sum of which is equal to the original numerical value. The first numerical value
is then placed in the highest cell in the first column in place of the original numerical
value whilst the second numerical value is placed in the lowermost cell in the second
column. The numerical values in the cells of the second column before the simulated
shift are then translated upwardly by one position;
- the numerical value in the lowermost occupied cell in the second column is subdivided
into first and second separate, but quantitatively similar numerical values the sum
of which is equal to the original numerical value. The first numerical value is then
placed in the first free cell of the first column disposed immediately above the highest
occupied cell in the first column itself whilst the second numerical value is placed
in the lowermost cell in the second column in place of the original numerical value.
[0135] It is apparent that the subdivision of the numerical value shown in the cells can
be performed in a different manner from that described above in that it is by no means
essential for the satisfactory performance of the second sub-procedure than the two
numerical values obtained by the subdivision be substantially equal to one another.
[0136] During the sorting cycles the postal objects to be delivered to the delivery address
subjected to bisection will be directed by the postal machine 1 as if they belonged
to one of the two virtually separate delivery addresses obtained by the bisection,
by associating them with one or the other delivery address with a probability proportional
to the respective traffic values.
[0137] Again, taking into consideration for example the first and second column of the matrix
of Figure 2, associated with the postman identified with the letter A the following
two simulations are effected separately:
- the numerical value "15" shown in the fourth cell of the first column is subdivided
into a first numerical value equal to "7" and a second numerical value equal to "8".
The first numerical value "7" is shown in the fourth cell of the first column in place
of the original numerical value "15" and the second numerical value "8" is shown in
the first cell of the second column. The numerical values "25" and "22" in the first
and second cells of the second column before the simulated shift are translated up
by one position.
- the numerical value "25" in the first cell of the second column is subdivided into
a first numerical value equal to "12" and a second numerical value equal to "13".
The first numerical value "12" is then placed in the fifth cell of the first column
and the second numerical value "13" is placed in the first cell of the second column
in place of the original numerical value "25".
[0138] The second sub-procedure makes it possible to obtain, for example, particularly pronounced
results in the improvement of the load balancing when the load of each of the two
columns is such that the simulated shifts in the first sub-procedure improve the load
of the first column but worsen that of the adjacent column by an approximately equivalent
amount and therefore the first sub-procedure does not allow an appreciable overall
improvement to be obtained.
[0139] With reference to Figure 3b, having finished the second sub-procedure, the process
leads from block 240 to a block 250 in which it is established whether the improvement
obtained with the second sub-procedure is sufficient or whether a time t1 has elapsed
since this sub-procedure was started.
[0140] If the improvement obtained with the second sub-procedure is significant or the time
t1 since this sub-procedure was started has not elapsed (output NO from block 250),
then the procedure leads on from block 250 again to block 240 for repetition of the
second sub-procedure, otherwise if the improvement obtained with the second sub-procedure
is not significant or a time t1 from when this sub-procedure was started has elapsed
(output YES from block 250) then there is performed a load balancing improvement procedure
of each of the outputs of the postal machine 1 at the end of the first sorting cycle
which forms part of the sorting process.
[0141] The load balancing improvement procedure for each of the outputs of the postal machine
1 at the end of the first sorting cycle operates directly on the matrix of Figure
2 at the end of the load balancing improvement of each of the rows of the matrix itself
and involves the performance of four consecutive sub-procedures described hereinafter.
[0142] In detail, block 250 of Figure 3b leads on to block 300 of Figure 3c in which the
first improvement sub-procedure is performed, which will be described hereinafter
with reference to Figures 3e and 3f.
[0143] The first sub-procedure involves performing, for each column of the matrix of Figure
2, a simulation of a redistribution of the delivery addresses of the column over all
the cells of the column itself and then the simulation which causes the most consistent
improvement in the balancing of the rows is actually performed, with consequent modification
of the configuration of the column. It is evident that if none of the simulated shifts
causes an improvement in the load balancing the configuration of the column under
consideration remains unchanged.
[0144] In other words, the first sub-procedure effects a redistribution of the numerical
values in the occupied cells of each column over all the cells of the column itself
in such a way as to alternate the free cells and the occupied cells of the columns.
In practice, the first sub-procedure performs a redistribution of the delivery addresses
assigned to each output of the postal machine 1 at the end of the second sorting cycle
on the outputs utilised in the first sorting cycle whilst maintaining respect for
the allocation criterion by which the delivery addresses are allocated to the output
itself in the second sorting cycle.
[0145] It is evident that this first sub-procedure is applicable only if the column in which
the redistribution is effected has at least one free cell.
[0146] In detail, with reference to Figures 3e and 3f, the procedure starts at a block 310
in which a criticality order is allocated to the columns of the matrix of Figure 2
on the basis of a criterion which principally takes account of the number of delivery
addresses associated with the columns themselves, that is to say the number of occupied
cells in each column.
[0147] Therefore, the most critical column will be that having the greatest number of occupied
cells and the least critical column will be that having the smallest number of occupied
cells.
[0148] The criticality order of the columns is utilised in the following part of the sub-procedure
to effect redistribution of the numerical values shown in the cells of the columns
themselves starting from the most critical down to the least critical and to distinguish
the most critical column from the remaining columns in that for this column the distribution
of the delivery addresses over the cells of the column itself is effected in a different
manner from that used for the remaining columns.
[0149] Block 310 leads on to block 320 in which the most critical column is identified on
the basis of the allocated criticality order.
[0150] Block 320 then leads onto a block 330 in which, for the most critical column, there
is effected a shift, within the column itself, of the numerical values in the occupied
cells in such a way as to distribute the free cells uniformly among the occupied cells.
[0151] Taking into consideration, for example, the tenth column of the matrix of Figure
2, which, as can be seen is the most critical column, this column has five occupied
cells and five free cells and therefore a uniform distribution among occupied cells
and free cells involves a shift of the numerical values in the occupied cells such
as to have a free cell interposed between each pair of occupied cells.
[0152] Therefore, the numerical values "26", "48", "13", "11" and "2" shown in the five
occupied cells of the tenth column are thus respectively shifted; the numerical value
"2" shown in the fifth cell is shifted into the ninth cell, the numerical value "11"
shown in the fourth cell is shifted into the seventh cell, the numerical value "13"
shown in the third cell is shifted into the fifth cell, the numerical value "48" shown
in the second cell is shifted into the third cell and the numerical value "26" shown
in the first cell remains in this cell.
[0153] For each successive column from the most critical one the distribution takes place
in a different manner described hereinafter.
[0154] Thus, from block 30 the process leads to a block 340 in which a subsequent column
to be examined for the redistribution of numerical values shown in the respective
occupied cells is identified starting from the second most critical column and down
to the least critical column on the basis of the allocated order of criticality.
[0155] Block 340 leads on to a block 350 in which an order of criticality is allocated to
the occupied cells of the examined column on the basis of a criterion which principally
takes into account the traffic in the delivery addresses associated with the cells
themselves, that is to say the numerical value shown in the occupied cells.
[0156] Therefore, the most critical cell will be that having the highest numerical value
and the least critical cell will be that having the lowest numerical value.
[0157] Subsequently there are performed operations having the purposed of determining what
will be the most convenient shifts within the column under examination of each of
the numerical values shown in the occupied cells of the column itself for the purpose
of minimisation of the sum of the numerical values shown in the occupied cells in
the rows belonging to the columns already examined.
[0158] In other words, by means of these operations, an optimum position for each of the
numerical values within the column under examination is determined.
[0159] The optimum position for each numerical value shown in the occupied cells of the
column under examination is determined, while still respecting the said constraint
on the progressive order with which the virtual positions are associated with the
respective delivery addresses (defined, as previously mentioned, by the sequence of
adjacent delivery address corresponding to street numbers or to groups of street numbers,
of buildings disposed along the route along which the postal objects must be delivered).
[0160] In particular, this constraint, by prohibiting any exchange in positions between
the numerical values shown in the cells of the same column, imposes a condition that
a shift in the numerical value shown in one cell corresponds, in the case of superimposition
over another numerical value, an equivalent shift of the numerical value shown in
the contiguous cells of the same column position above the cell (if the shift is upwards)
or below the cell (if the shift is downwards).
[0161] Therefore, for determination of the optimum position of each of the numerical values
shown in the occupied cells of the column under examination, block 350 leads on to
a block 360 in which there is identified, in the column under examination, an occupied
cell to be examined starting from the most critical cell and, in the subsequent repetitions,
leading to the least critical cell on the basis of the previously assigned criticality
order.
[0162] Block 360 then leads to a block 370 in which the load TC in the row RC in which the
cell under examination is disposed is determined by considering, as previously mentioned,
only the numerical values in the cells of the row, corresponding to columns already
examined.
[0163] Block 370 leads then to a block 380 in which the possible shifts within the respective
column of the numerical values in the cell under examination are determined, that
is to say the changes for which it is possible to effect a corresponding shift in
the numerical values shown in the other occupied cells of the same column.
[0164] Block 380 then leads on to a block 390 in which it is tested whether there is another
possible shift to simulate within the same column as the numerical value in the cell
under consideration.
[0165] If there is a possible shift to simulate (output YES from block 390) then from block
390 it leads onto block 400, otherwise if there is no possible shift to simulate (output
NO from block 390) then from block 390 it leads to block 470 described hereinbelow.
[0166] In block 400 the sums of the numerical values shown in the cells belonging to the
columns already examined are determined by row, excluding the column currently under
examination and being limited to the rows in which it is possible to effect a shift
of the numerical value shown in the cell under examination and also including the
row to which the cell under examination belongs.
[0167] From block 400 it then leads to a block 410 in which, from among the rows taken into
consideration in block 400, the row having the minimum traffic sum is determined.
From block 420 it then leads to a block 460 in which the above-identified shift is
performed, consequently performing, where necessary, the corresponding shifts of the
other numerical values in the other occupied cells of the column.
[0168] It is apparent that no shift will be performed if the numerical value in the cell
under examination belongs initially to the row which is that having the minimum traffic
sum.
[0169] Block 460 then leads to a block 470 in which the numerical value in the cell under
examination is constrained to remain in the position assumed, whether that is the
initial position or that to which it has been shifted, in such a way that it is no
longer subject to further shifts in the subsequent simulations effected for the other
numerical values in the other cells of the column under examination. For example,
taking into consideration the ninth column of the matrix of Figure 2, which as can
be seen is the second most critical, the most critical cell is the first in which
there is shown the numerical value "64". As described above, this numerical value
is shifted to one of the second, fourth, sixth and eighth row of the column itself
[0170] The constraint on the progressive order of the virtual positions does not permit,
for example, the shift of the numerical value "64" to the tenth cell in that the numerical
value "30" shown in the second cell would consequently not be displaceable within
the same column.
[0171] From block 470 it then leads to block 480 in which it is checked whether there is
a further occupied cell to be examined in the column under examination on which to
effect the simulation of the shift and repeat the operations described for the numerical
value shown in this cell.
[0172] If there is a further occupied cell to be examined (output YES from block 480) then
from block 480 the process moves back again to block 360 to repeat the operations
described for the numerical value in the subsequent occupied cell under examination
with the constraint of not further displacing the numerical values in the cells already
examined, otherwise if all the occupied cells of the column under examination have
already been examined (output NO from block 480) then block 480 leads on to block
490.
[0173] In block 490 it is checked whether there is a further column to be examined in the
matrix of Figure 2.
[0174] If there is a further column to be examined (output YES from block 490) then from
block 490 it leads to block 340 to repeat the operations described for the occupied
cells of the successive column under examination, otherwise if all the columns of
the matrix have already been examined (output NO from block 490) then the first sub-procedure
terminates.
[0175] With reference again to Figure 3c, having completed the first sub-procedure, it proceeds
from block 300 to block 530 in which the second sub-procedure is performed which will
described hereinafter with reference to Figures 3g and 3h.
[0176] The second sub-procedure involves performing, for each row of the matrix of Figure
2 and in an order described in detail hereinafter, a simulation of a shift of each
of the numerical values in the row itself into contiguous free cells of the same column
and actual performance of the shift only when this makes it possible to obtain improvements
in the balance of the rows.
[0177] In other words, the second sub-procedure simulates the shift of each of the numerical
values in the occupied cells of each row into adjacent cells of the same column.
[0178] In practice, the second sub-procedure performs a shift of delivery addresses from
the outputs of the postal machine 1 to which respective logically contiguous outputs
are allocated at the end of the first sorting cycle whilst maintaining the allocation
criterion by which the delivery addresses themselves are assigned to respective groups
of outputs in the second sorting cycle.
[0179] It is evident that this second sub-procedure is only applicable when at least one
of the occupied cells has at least one adjacent free cell.
[0180] In detail, with reference to Figures 3g and 3h, at block 550 the rows of the matrix
of Figure 2 are allocated an order of criticality on the basis of a criterion which
principally takes account of the number of delivery addresses associated with the
rows, that is to say the number of occupied cells in each row.
[0181] Therefore, the most critical row will be that having the greatest number of occupied
cells and the least critical row will be that having the smallest number of occupied
cells.
[0182] The order of criticality of the rows is utilised to determine the most critical row
on which to simulate the shift of the numerical values in the cells of the row itself
[0183] Block 550 leads then to a block 560 in which the most critical row RC to be examined
for the shift in the numerical values in its occupied cells is identified.
[0184] From block 560 it then leads to a block 570 in which the load TC of the row RC under
examination is determined by summing the numerical values in the occupied cells of
the row itself.
[0185] Subsequently, for the purpose of minimisation of the load on the rows, operations
are performed for determining the most convenient shift, within the same column, of
each of the numerical values in the occupied cells of the row RC under examination
from the position occupied in the row RC itself to positions in the rows RT immediately
contiguous to the row RC.
[0186] In other words, by means of these operations, it is determined which will be the
optimum position, for the purpose of minimising the load of the rows, of each of the
numerical values in the occupied cells of the row RC under examination from among
the original positions in the row RC itself, that is immediately above and immediately
below in the same column.
[0187] It is apparent that, for a given numerical value these operations can only be performed
when there is a free cell in the same column in at least one of the rows immediately
contiguous to that in which this numerical value appears.
[0188] Therefore, for determination of the optimum position of each of the numerical values
shown in these occupied cells of the row RC under examination, block 570 leads on
to a block 580 in which there is identified, in the row RC under examination, an occupied
cell to be examined, starting from the cell disposed in the first column and proceeding
to that disposed in the last column.
[0189] From block 580 it then leads to a block 590 in which there are determined the possible
shifts which the numerical value shown in the cell under examination can effect within
the same column from the row RC to contiguous rows RT, that is to say the shifts which
this numerical value can make towards free cells contiguous to that under examination.
[0190] It is evident that at most there are only two such shifts in that there are only
two cells adjacent that under consideration.
[0191] From block 590 it then leads to a block 600 in which it is established whether there
is any possible shift of this numerical value from the row RC to a contiguous row
RT which can be simulated.
[0192] If there is a possible shift which can be to simulated (output YES from block 600)
then from block 600 it leads on to a block 610, otherwise if all the possible shifts
have already been simulated (output NO from block 600) then from block 600 it leads
on to block 660 described hereinafter.
[0193] In block 610 one of the shifts determined in block 590 of the numerical value in
the cell under examination from row RC to one of the contiguous rows RT is simulated
and the new load TCN of the row RC and the new load TTN of the row RT after the shift
are determined.
[0194] From block 610 it then leads to a block 620 in which a numerical value Tm equal to
the greatest two loads TCN and TTN determined above is determined, that is to say
Tm equals max (TCN, TTN).
[0195] From block 620 it then leads to a block 630 in which it is established whether the
numerical value Tm is less than the load TC of the row RC under examination before
the simulate shift, determined in block 570, that is to say it is checked whether
the simulated displacement has achieved an improvement in the balance of the load
in the rows RC and RT.
[0196] If the numerical value Tm is less than the load TC, that is to say if the simulated
shift has caused improvements in the balance of the load of the rows RC and RT (output
YES from block 630) then from block 630 it leads to block 640, otherwise if the numerical
value Tm is greater than or equal to the load TC, that is to say if the simulated
shift has not caused any improvement in the balancing of the load of the rows RC and
RT (output NO from block 630), then from block 630 it again goes to block 600 to test
if there is a further possible shift to simulate from row RC to a contiguous row RT
and the above described operations relating to this shift are repeated.
[0197] In block 640 the difference D between the load TC and the numerical value Tm is determined,
which is correlated to the magnitude of the improvement of the load of the rows RC
and RT obtained by means of the shift.
[0198] From block 640 it then leads onto a block 650 in which the above-determined difference
D and the associated shift which allows this difference D to be obtained are memorised,
as well at the position of the cell under examination.
[0199] From block 650 it then returns again to block 600 to test if there is further possible
shift from row RC to a contiguous row RT to be simulated and to repeat the above-described
operations relating to this shift.
[0200] In block 660, to which the process moves if there are no available shifts to simulate
or if all the possible shifts of the numerical value shown in the cell under examination
have already been simulated, it is checked if there is a further cell to be examined
belonging to the row RC under examination.
[0201] If there is a further cell to be examined (output YES from block 660) then from block
660 it moves back to block 580 for repetition of the operations described for a subsequent
occupied cell of the row RC, otherwise if all the cells have already been examined
(output NO from block 660) then it moves onto a block 670.
[0202] In block 670 it is checked if at least one shift and a respective difference D relating
to the row RC under examination has been memorised, that is to say if at least one
of the simulated shifts has made it possible to obtain an improvement in the balance
of the load on the rows RC and RT.
[0203] If at least one shift has been memorised, that is to say at least one of the simulated
shifts has allowed a reduction in the load on the rows RC and RT (output YES from
block 670), from block 670 it leads onto a block 680, otherwise if no shift has been
memorised, that is to say no simulated shift has allowed a reduction in the load on
the rows (output NO from block 670) from block 670 it leads to a block 700.
[0204] In block 680 it is identified which of the differences D memorised is the greatest
and this consequently also identifies the shift which allows this maximum difference
D to be obtained as well as the position in the cell involved of this shift.
[0205] From block 680 it then leads to a block 690 in which the above-identified shift is
performed, with consequent modification of the configuration of the matrix of Figure
2.
[0206] From block 690 it then moves again to block 550 for a new allocation of the order
of criticality to the rows and repetition of the above-described operations for the
most critical row.
[0207] In block 700, to which the process leads if no shift has been memorised, that is
to say no shift in the row under examination has allowed an improvement in the balancing
of the load on the rows, the row RC previously examined is considered excluded from
the operations subsequently performed on the rows of the matrix of Figure 2 in that
any shift in the numerical values of its cells does not allow any improvement in the
balancing of the rows themselves.
[0208] From block 700 it then leads to a block 710 in which it is verified if all the rows
have been excluded or if a maximum predetermined time has elapsed.
[0209] If not all the rows have been excluded and the maximum predetermined time has not
yet elapsed (output YES from block 710), from block 710 it then leads to block 550
for a new allocation of a criticality order to the rows and repetition of the operations
described above to the most critical row, otherwise if all the rows have been excluded
or if not all the rows are excluded but a maximum predetermined time has elapsed (output
NO from block 710) then the second sub-procedure terminates.
[0210] With reference again to Figure 3c, having finished the second sub-procedure, block
530 then moves on to block 720 in which it is tested if the improvement obtained with
the second sub-procedure is sufficient or if a time T2 has elapsed since the second
sub-procedure was started.
[0211] In particular, the improvement obtained is sufficient if the loads on each group
of rows associated with the various postmen are better balanced by a predetermined
amount with respect to the loads which they had before the performance of the second
improvement sub-procedure.
[0212] If the improvement obtained with the second improvement sub-procedure is not sufficient
or the time t2 has not elapsed since this second sub-procedure was started (output
NO from block 720) then from block 720 it again returns to block 530 for repetition
of the second sub-procedure, otherwise if the improvement obtained with the second
improvement sub-procedure is sufficient or a time t2 has elapsed since this second
sub-procedure was started (output YES from block 720) then from block 720 it moves
on to block 730.
[0213] The third sub-procedure is performed in block 730, which will hereinafter be described
with reference to Figures 3i, 3j and 3k.
[0214] The third sub-procedure involves performing a simulation of exchanges between contiguous
rows of pairs of delivery addresses belonging to different columns and the performance
of such exchanges only when they allow improvements in the balancing of the load of
such pairs of columns to be obtained.
[0215] In other words, for each of the numerical values shown in row RC under examination,
the third sub-procedure simulates the shifting, within a first column, of a numerical
value shown in an occupied cell of row RC into a free cell of an immediately contiguous
row RT and the simultaneous shifting, within a second column, of a numerical value
shown in an occupied cell of row RT into a free cell of row RC.
[0216] In practice the third sub-procedure is performed by exchanging delivery addresses
between contiguous outputs and each exchange is effected whilst still respecting the
allocation criterion by which the exchanged delivery addresses are allocated to respective
groups of outputs in the second sorting cycle.
[0217] It is apparent that this third sub-procedure is only applicable if there is at least
one free cell in each of the said columns.
[0218] In detail, with reference to Figures 3i, 3j and 3k it initially starts at a block
750 in which a criticality order is assigned to the rows of the matrix of Figure 2
on the basis of a criterion which principally takes account of the number of delivery
addresses associated with the rows themselves, that is to say the number of occupied
cells in each row.
[0219] Therefore, the most critical row will be that having the greatest number of occupied
cells and the least critical will be that having the smallest number of occupied cells.
[0220] The order of criticality of the rows is utilised to determined the most critical
row to be considered for the simulation of the exchange of pairs of numerical values.
[0221] Block 750 leads onto a block 760 in which the most critical row RC to be examined
for exchange of the numerical values in occupied cells thereof is identified.
[0222] From block 760 it then leads to a block 770 in which the load TC of the row RC under
examination is determined by summing the numerical values shown in the occupied cells
of the row itself.
[0223] Subsequently operations are performed having the purpose of determining, for the
purposes of reduction of the load on the rows, which will be the most convenient shift
within the said column of each of the numerical values in the occupied cells of the
row RC under examination from the position in the row RC to a position in the immediately
contiguous row RT and a shift in the opposite direction, contemporaneously, of another
numerical value from its position in the row RT to a position in the row RC, obviously
positioned in another column.
[0224] In other words, by means of these operations it is determined, for the purpose of
minimising the load on the rows, which will be the most convenient positions to exchange
of each of the numerical values in the occupied cells of the row under examination
with another numerical value positioned in an immediately contiguous row.
[0225] It is evident that for a given numerical value these operations can be performed
only if there are free cells in at least one of the rows immediately above or immediately
below the cell in which this numerical value appears.
[0226] Therefore, for the determination of the most convenient exchange of each of the numerical
values in the occupied cells of the row RC under examination, block 770 leads onto
a block 780 in which an occupied cell to be examined is identified in the row RC under
examination, starting from the cell disposed in the first column and ending with that
disposed in the last column.
[0227] From block 780 it then moves on to a block 790 in which the shifts which it is possible
that the numerical value in the cell under examination can make within the respective
column on the rows RT contiguous with the row RC are determined, that is to say the
shifts towards the contiguous free cells.
[0228] It is evident that there can be at most two such displacements in that there are
only two cells adjacent to that under consideration.
[0229] From block 790 it then leads to a block 800 in which it is established if there is
a possible shift of such numerical value from the row RC to a contiguous row RT to
be simulated.
[0230] If there is a possible shift to be simulated (output YES from block 800) then from
block 800 it leads onto a block 810, otherwise if there is no possible shift to be
simulated or if all the shifts have already been simulated (output NO from block 800)
then from block 800 it leads onto a block 900 described hereinafter.
[0231] In block 810 one of the shifts determined in block 790 of the numerical value in
the cell of row RC under examination and one of the contiguous rows RT is simulated
and the load TT of the row RT before the shift is also determined.
[0232] From block 810 it then leads to a block 820 in which it is determined which of the
numerical values shown in the occupied cells of the row RT can be shifted, within
their column, into free cells of the row RC.
[0233] From block 820 it then leads to a block 830 in which it is checked if there is a
possible shift of the numerical values shown in the occupied cells of the row RT from
row RT itself to row RC to be simulated.
[0234] If there is a possible shift to be simulated (output YES from block 830) then from
block 830 it leads onto a block 840, otherwise if there is no possible shift to be
simulated or all the possible shifts have already been simulated (output NO from block
830) then from block 830 it leads back to block 800 to check if there is a further
possible shift to be simulated of the numerical value shown in the occupied cell under
examination from the row RC to another of the rows RT contiguous to row RC itself
and therefore to repeat the above-described operations relating to this further shift.
[0235] In block 840 the shifting of one of the numerical values, determined in block 820,
from row RT to row RC is simulated.
[0236] From block 840 it then leads onto a block 850 in which the new load TCN of the row
RC after the simulated shift, and the new load TTN of the row RT after the simulated
shift are both determined.
[0237] From block 850 it then leads onto a block 860 in which a first numerical value TM1
equal to the greater of the two loads TC and TT of the rows RC and RT before the simulated
displacement is determined in blocks 770 and 810, that is to say TM1=max(TC, TT),
and a second value TM2 equal to the greater of the two loads TCN and TTN of the rows
RC and RT after the simulated displacements are determined in the block 840.
[0238] From block 860 it then leads to a block 870 in which it is established if the second
numerical value TM2 is less than the first numerical value TM1, that is to say if
the exchange of numerical values between the rows RC and RT simulated above has caused
an improvement in the loads in the rows RC and RT themselves.
[0239] If the second numerical value TM2 is smaller than the first numerical value TM1,
that is to say if the exchange has caused an improvement in the balance of the loads
on the rows RC and RT (output YES from block 870) then from block 870 it leads onto
a block 880, otherwise if the second numerical value TM2 is greater than or equal
to the first numerical value TM1, that is to say if the exchange has not made an improvement
in the balance of the loads of the rows RC and RT (output NO from block 870) then
from block 870 it leads again to block 830 to check if there is a further possible
shift of a numerical value from the row RT to the row RC to be simulated and to repeat
the above-described operations for this further shift.
[0240] In block 880 the difference D between the first and second numerical value TM1 and
TM2 is determined, which is correlated to the magnitude of the improvement of the
load in the rows RC and RT obtained by means of the exchange.
[0241] From block 880 it then leads to a block 890 in which the difference D mentioned above
and the associated pair of shifts which allow this difference D to be obtained are
memorised, as well as the positions of the cells involved in the said shifts.
[0242] From block 890 it then leads back to block 830 to check if there is a further possible
shift of a numerical value from row RT to row RC to be simulated and to repeat the
operations described above for the further shift.
[0243] As previously mentioned, whenever there is a further shift possible from the row
RT to the row RC to be simulated (output YES from block 830) then from block 830 it
leads onto block 840, otherwise if there is no possible shift to be simulated or all
the possible shifts from row RT to row RC have been simulated (output NO from block
830) then from block 830 it leads to block 800 to check if there is a further possible
shift from row RC to row RT to be simulated and to repeat the operations described
above relating to this further shift.
[0244] If there is a further possible shift from row RC to row RT to be simulated (output
YES from block 800) then, as previously mentioned, from block 800 it leads onto block
810, otherwise if there is no possible shift to be simulated or if all the possible
shifts from row RC to row RT have been simulated (output NO from block 800) then from
block 800 it goes onto block 900.
[0245] In block 900 it is checked to see if there is a further cell of the row RC to be
examined.
[0246] If there is a further cell in row RC to be examined (output YES from block 900) then
from block 900 it leads back to block 780 to repeat the described operations for a
subsequent occupied cell of row RC, otherwise if all the cells of row RC have been
examined (output NO from block 900) then it leads to block 910.
[0247] Block 910 checks if at least one pair of shifts and a respective difference D relating
to the row RC under examination has been memorised, that is to say if at least one
of the simulated exchanges has allowed an improvement in the balance of the load in
rows RC and RT to be obtained.
[0248] If at least one pair of shifts has been memorised, that is to say at least one of
the simulated exchanges has allowed the load in the rows RC and RT to be reduced (output
YES from block 910) block 910 leads onto block 920, otherwise if no pairs of shifts
have been memorised, that is none of the simulated exchanges has allowed the load
on the rows RC and RT to be reduced (output NO from block 910) from block 910 it leads
on to block 940.
[0249] In block 920 it is identified which of the memorised differences D is the greatest
and consequently the pair of shifts which allow this differences D to be obtained
are also identified as well as the positions of the cells involved in these shifts.
[0250] From block 920 it then leads to a block 930 in which the pair of shifts identified
above are performed with consequent modification of the configuration of the matrix
of Figure 2.
[0251] From block 930 it then leads back to block 750 for a new assignment of a criticality
order to the rows and repetition of the above-described operations for the most critical
row.
[0252] In block 940, to which the process leads if no pairs of shifts have been memorised,
that is to say if no simulated shift allows an improvement of the balancing of the
load in the rows RC and RT to be obtained, the previously examined row RC is considered
excluded from the operations subsequently performed on the rows of the matrix of Figure
2 in that no shift of the numerical values of its cells allows any improvement in
the balancing of the rows themselves to be obtained.
[0253] From block 940 it then leads to a block 950 in which it is checked if all the rows
have been excluded or if a maximum predetermined time has elapsed.
[0254] If not all the rows have been excluded and a predetermined maximum time has not yet
elapsed (output YES from block 950) from block 950 it leads back to block 750 for
a new allocation of an order of criticality to the rows and repetition of the above-described
operations for the most critical row, otherwise if all the rows have been excluded
or not all the rows have been excluded but a maximum predetermined time has elapsed
(output NO from block 950) then the third sub-procedure terminates.
[0255] With reference again to Figure 3c, having terminated the third sub-procedure, from
block 730 it leads to a block 970 in which it is checked if the improvement obtained
with the third sub-procedure is sufficient or if a time t3 from when this third sub-procedure
started has elapsed.
[0256] In particular, the improvement obtained is sufficient if the loads in each group
of rows associated with the various postmen are better balanced, by a predetermined
quantity, with respect to the loads which they had before execution of the third improvement
sub-procedure.
[0257] If the improvement obtained with the third improvement sub-procedure is significant,
or rather greater than a predetermined threshold, or if a time t3 from when the third
sub-procedure is started has not elapsed (output NO from block 970) then from block
970 it leads back to block 730 for the repetition of the third sub-procedure, otherwise
if the improvement obtained with the third improvement sub-procedure is not significant
or if a time t3 from when this third sub-procedure is commenced has elapsed (output
YES from block 970) then from block 970 it leads onto a block 980.
[0258] In block 980 the fourth sub-procedure is performed, which involves effecting, for
each of the rows of the matrix of Figure 2 and in a predetermined order described
in detail hereinafter, a simulation of a sub-division (bisection) of each of the delivery
addresses disposed in these rows into two virtually separate delivery addresses and
their separate allocation to nearby free cells of the same column and a performance
of this subdivision only if it allows improvements in the balancing of the load in
this pair of rows to be obtained.
[0259] In the fourth sub-procedure, therefore, if a delivery address is bisected, it is
removed from the matrix and replaced by two new delivery addresses: the first delivery
address obtained by bisection is allocated to the same cell in which the initial bisected
delivery address was located and the second delivery address obtained by bisection
is allocated to a cell disposed in the same column in which the initial bisected delivery
address was disposed but in a nearby row, compatible with the available free cells
of the matrix. Moreover, the traffic at the first and second delivery address obtained
by bisection is reduced, typically to half, with respect to the traffic at the bisected
initial delivery address in such a way that their sum is equal to the traffic at the
bisected initial delivery address.
[0260] The first and second delivery address therefore replace the bisected initial delivery
address and represent in reality the same postal address, which, via the said bisection
will now be differently and more conveniently assigned to the outputs of the postal
machine 1 in the first and second sorting cycle. In the light of the above, the first
and second delivery address obtained by bisection are therefore virtually separate.
[0261] Via the fourth sub-procedure bisection of a delivery addresses into respective pairs
of virtually separate delivery addresses is effected and each pair of virtually separate
delivery addresses obtained by bisection is assigned to a respective pair of outputs
comprising the output to which is associated the original delivery address from which
this pair of virtually separate delivery addresses has originated, and a second output
identified by the position to which the second virtual delivery address is assigned.
[0262] Moreover, the allocation of each pair of virtually separate delivery addresses to
the respective pairs of outputs is effected whilst respecting the allocation to the
respective output in the second sorting cycle of the delivery address from which this
pair of virtually separate delivery addresses has originated following bisection.
[0263] It is evident that this fourth sub-procedure is only applicable if at least one of
the cells close to that under examination is free.
[0264] The fourth sub-procedure is similar to the second sub-procedure previously described
with reference to Figures 3g and 3h and therefore will be described only inasmuch
as it differs from the second sub procedure.
[0265] The fourth sub-procedure differs from the second sub-procedure only by the fact that
rather than simulate shifts on contiguous rows of the numerical value in the occupied
cell under examination, the subdivision of this numerical value into separate and
quantitatively similar first and second numerical values the sum of which is equal
to the original numerical value is simulated.
[0266] The first numerical value is therefore represented in the cell in which the original
numerical value is formed whilst the second numerical value is shown in a nearby free
cell in the same column.
[0267] It is apparent that the subdivision of the original numerical value can be effected
in a different manner from that described above in that it is not absolutely essential
for a good result of the second sub-procedure that the two numerical values obtained
by the subdivision be quantitatively similar to one another.
[0268] At the end of the simulation of the bisection of all the numerical values in the
occupied cells of the row under examination the subdivision which is associated with
the maximum difference D is then actually performed.
[0269] Having completed the fourth sub procedure, from block 980 of Figure 3c the process
leads to a block 990 in which it is checked if the improvement obtained with the fourth
sub-procedure is significant or if a time t4 from when this fourth sub-procedure was
initiated has elapsed.
[0270] In particular, the improvement obtained is considered significant if the loads in
each group of rows associated with the various postmen are better balanced by a greater
quantity than a predetermined threshold, with respect to the loads which they had
before performance of the fourth improvement sub-procedure.
[0271] If the improvement obtained with the fourth sub-procedure is significant or if a
time t4 from when this fourth sub-procedure was initiated has not elapsed (output
NO from block 990), then from block 990 it returns again to block 980 for repetition
of the fourth sub procedure, otherwise if the improvement obtained with the fourth
sub-procedure is not significant or if a time t4 from when this fourth sub-procedure
was initiated has elapsed (output YES from block 990) then the balancing method has
terminates.
[0272] As initially mentioned, the balancing method described above relates to a postal
machine 1 having a single input I.
[0273] If the postal machine 1 were to have more inputs for the postal objects the sorting
process would be similar to that described and differs from this as follows.
[0274] In particular, if the postal machine 1 had several inputs, each of these would be
assigned a first subset of the outputs at the end of the first sorting cycle and a
second subset of the outputs at the end of the second sorting cycle. In other words,
the postal objects entering into the postal machine 1 through the first input would
be deposited in a first subset of the outputs of the postal machine 1 itself at the
end of the first sorting cycle and in a second subset of the outputs of the postal
machine 1 at the end of the second sorting cycle.
[0275] A similar argument holds true for the postal objects entering the postal machine
1 through the second input, the third input, and so on.
[0276] Therefore, by identifying the first and the second subset of the outputs of the postal
machine 1 associated with each input on the rows and columns respectively of the matrix
of Figure 2 the groups of rows and groups of columns respectively associated with
each input of the postal machine 1 at the end of the first and second sorting cycle
respectively are consequently identified.
[0277] By determining the intersection of each group of rows with the respective group of
columns there are identified separate groups of cells of the matrix of Figure 2, each
of which defines a respective sub matrix contained in the matrix of Figure 2.
[0278] Each sub matrix therefore constitutes a matrix representation of a postal machine
to all intents having one input and the associated subset of outputs and can therefore
be treated by the same standard as the matrix of Figure 2 without modifications with
respect to what has been previously described, thus allowing the balancing of the
subset of outputs associated with the respective input to be improved.
[0279] As initially stated, the balancing method has been described with reference to a
postal machine 1 performing a sorting process composed of two successive sorting cycles.
[0280] The inventive concept on which the present invention is based can nevertheless also
be utilised in a sorting process composed of several successive sorting cycles.
[0281] In this case, in the last sorting cycle the first procedure will be applied in the
manner described, in the first sorting cycle the second procedure will be applied
in the manner described, whilst in the second sorting cycle (intermediate sorting
cycle) it can be chosen not to apply any of the said procedures or one or two or all
of them can be applied.
[0282] As initially stated, the method according to the present invention can also be utilised
of balancing the load in any type of sorting process performed by means of one or
more devices able to separate streams of objects to put them in a predetermined sequence
for directing them to delivery addresses or destinations.
[0283] Therefore, the term "machine" utilised in the preceding description generally indicates,
in these different applications of the present method of balancing, the device or
devices utilised for the performance of the sequencing process.
[0284] In particular, in these different applications of the present balancing method, the
machine is able to withdraw, ordered from an input, constituted by a generic number
of expected zones, a sequence of objects the order of which can be unknown beforehand
and each of which contains sufficient elements for a classification by the machine
itself to guarantee the transport of the objects themselves towards an output constituted
by deposition zones and/or release zones, which are dependent on the class of object
identified according to predetermined rules and can also coincide with the said expected
zones.
[0285] From a study of the characteristics of the balancing method according to the present
invention the advantages which it allows are evident.
[0286] Finally, it is clear that the method described and illustrated here can have modifications
and variations introduced thereto without by this departing from the protective ambit
of the present invention.
[0287] For example, the criticality criteria adopted for ordering the rows and columns and
the criteria on the basis of which the various sub-procedures are terminated can be
different from those described.
[0288] Moreover, in the sub-procedures in which ordering criteria on the base of criticality
are not applied, the method by which the rows and columns are examined can be different
from that described.
[0289] Moreover, in the sub-procedures described with reference to blocks 530, 730 and 980
the shifts and exchanges between numerical values can be effected in different ways
from those described, and in particular (if possible) may be effected also in positions
which are not immediately contiguous but spaced by two or more cells.
[0290] Similar arguments can be given for the sub-procedure described in block 980 and therefore
if possible the virtually separate numerical values obtained by bisection can be assigned
to cells positioned in rows which may even be not immediately contiguous.
[0291] Moreover, the criterion for allocation of the delivery addresses to the cells of
the matrix can be different from that described.
By utilisation of a different allocation criterion from that described a series of
variations in the manner of shifting the delivery addresses can be derived.
[0292] In particular, as previously mentioned, the criterion for allocation of the delivery
addresses to the cells of the matrix defines a constraint prohibiting any exchange
of positions between the numerical values in the cells of one column and this constraint
requires the various shifts and bisections of numerical values described above in
the sub procedures illustrated in blocks 100 and 240 to be effected whilst respecting
this constraint. Therefore, by utilising a different criterion from that described
it is apparent that any shift in the numerical values would have to respect this different
allocation criterion and therefore the shifts would be effected between columns considered
"contiguous" according to the allocation criterion adopted.
[0293] Consequently, even the "logical contiguity" of the outputs of the postal machine,
which in the example described is defined by a memorised table and is constant in
all the sorting cycles, and also at the level of the various sub-procedures, could
be different and in each sub-procedure of the balancing method the outputs of the
postal machine could be contiguous to one another according to a different logical
criterion.
[0294] Finally, the balancing of the load of the outputs of the postal machine could be
simplified by performing only one of the said first and second balancing procedures
in the respective sorting cycle and this simplification, even if on the one hand it
would cause an inevitable reduction in the efficacy of the balancing of the load of
the outputs of the postal machine, it would nevertheless allow on the other hand a
significant saving both in operating time and in occupation of resources required
in the implementation of the method itself.
1. A method of balancing the load in a process of sorting objects (2), in particular
postal objects, the said sorting process comprising the performance of a first and
at least a second consecutive sorting cycle and being achieved by means of a machine
(1) receiving a set of objects (2) at its input (I) and providing at its output (U)
the said objects (2) identified and separated according to determined sorting rules;
in a given sorting cycle the objects (2) being delivered to the outputs (U) of the
machine (1) according to a respective predetermined sorting criterion and being returned
in their ordered state to the input (I) of the machine (1) itself for the performance
of a subsequent sorting cycle; the outputs (U) of the machine (1) being subdivided,
in the last sorting cycle of the sorting process, into separate subsets (A, B, C,
D) and each subset (A, B, C, D) being allocated to a plurality of respective destinations
according to an allocation criterion correlated to the order of delivery of the objects
to the destinations;
the said balancing method being characterised by the fact that it comprises the phase
of performing, in at least one of the said sorting cycles, at least one of the following
procedures:
a) a first procedure (100, 210-240) of balancing the load at the outputs (U) of the
machine (1) at the end of the current sorting cycle based on at least one of the following
balancing criteria;
• displacement of destinations from the outputs (U) to which they are allocated to
respective logically contiguous outputs (U) belonging to the same subset (A, B, C,
D) according to a first predetermined logical criterion;
• allocation of further outputs (U) to the said subsets (A, B, C, D) on the basis
of an order of criticality of the outputs already allocated to the subsets (A, B,
C, D) themselves; and
• bisection of destinations into respective pairs of virtually separate destinations
and allocation of each pair of virtually separate destinations to a respective pair
of logically contiguous outputs (U) belonging to the same subset (A, B, C, D) according
to a second predetermined logical criterion; and
b) a second procedure (300, 530, 730, 980) of balancing the load at the outputs (U)
of the machine (1) at the end of the current sorting cycle based on at least one of
the following balancing criteria;
• distribution over the outputs (U) utilised in the current sorting cycle of destinations
allocated to each output (U) at the end of the subsequent sorting cycle;
• shifting of the destinations from the outputs (U) to which they are allocated to
respective logically contiguous outputs (U) according to a third predetermined logical
criterion;
• exchange of destinations between logically contiguous outputs (U) according to a
fourth predetermined logical criterion; and
• bisection of destinations into respective pairs of virtually separate destinations
and allocation of each pair of virtually separate destinations to a respective pair
of logically contiguous outputs (U) according to a fifth predetermined logical criterion.
2. A method according to Claim 1, characterised in that the said first procedure (100,
210-240) comprises the phase of performing a first sub-procedure (100) of shifting
destinations from the outputs to which they are allocated to respective logically
contiguous outputs belonging to the same subset (A, B, C, D); the said first sub-procedure
(100) comprising the phase of shifting the destinations whilst respecting the allocation
criterion by which the destinations themselves are allocated to respective subsets
(A, B, C, D) of outputs (U) in the last sorting cycle of the sorting process.
3. A method according to Claim 1 or Claim 2, characterised in that the said first procedure
(100, 210-240) comprises the phase of performing a second sub-procedure (210-230)
of allocating further outputs (U) to the said subsets (A, B, C, C) on the basis of
an order of criticality of the outputs (U) already allocated to the subsets (A, B,
C, D) themselves; the said order of criticality being a function of the number of
destinations allocated to each output (U) and the traffic of objects to each destinations.
4. A method according to any preceding claim, characterised in that the said first procedure
(100, 210-240) comprises the phase of performing a third sub-procedure (240) of dividing
destinations into respective pairs of virtually separate destinations and assigning
each pair of virtually separate destinations to a respective pair of logically contiguous
outputs (U) belonging to the same subset (A, B, C, D); the said third sub-procedure
(240) comprising the phase of assigning each pair of virtually separate destinations
to a pair of logically contiguous outputs (U) comprising one output with which the
destination from which this pair of virtually separate destinations has been formed
by division is associated and a logically contiguous output (U) belonging to the same
subset (A, B, C, D).
5. A method according to Claim 4, characterised in that the said third sub-procedure
(240) comprises the phase of allocating each pair of virtually separate destinations
obtained upon bisection to respective pairs of logically contiguous outputs (U) whilst
respecting the allocation criterion by which the destination from which this pair
of virtually separate destinations was formed by bisection was assigned to respective
subsets (A, B, C, D) of outputs (U) in the last sorting cycle of the sorting process.
6. A method according to any preceding claim, characterised in that the said second procedure
(300, 530, 730, 980) comprises the phase of performing a fourth sub-procedure (300)
of distributing destinations allocated to each output (U) at the end of the subsequent
sorting cycle over the outputs (U) utilised in the current sorting cycle; the said
fourth sub-procedure (300) comprising the phase of distributing the destinations whilst
respecting the allocation criterion by which the destinations themselves are allocated
to the associated output in the last sorting cycle of the sorting process.
7. A method according to any preceding claim, characterised in that the said second procedure
(300, 430, 730 980) comprises the phase of performing a fifth sub-procedure (530)
of shifting destinations from the outputs to which they are allocated to respective
logically contiguous outputs; the said fifth sub-procedure (530) comprising the phase
of displacing the destinations whilst respecting the allocation criterion by which
the destinations themselves are allocated to the respective subsets of outputs in
the last sorting cycle of the sorting process.
8. A method according to any preceding claim, characterised in that the said second procedure
(300, 430, 730, 980) comprises the phase of performing a sixth sub-procedure (730)
of exchanging destinations between logically contiguous outputs; the said sixth sub-procedure
(730) comprising the phase of effecting each exchange by shifting a first destination
from a first output to which it is allocated to a second logically contiguous output
and simultaneously shifting a second destination from the said second output to the
said first output; each of the said exchanges being effected whilst respecting the
allocation criterion by which the first and second destination are allocated to respective
subsets of outputs in the last sorting cycle of the sorting process.
9. A method according to any preceding claim, characterised in that the said second procedure
(300, 530, 730, 980) comprises the phase of performing a seventh sub-procedure (980)
of bisecting destinations into respective pairs of virtually separate destinations
and allocating each pair of virtually separate destinations obtained upon bisection
to a respective pair of logically contiguous outputs; the said seventh sub-procedure
(980) comprising the phase of allocating each pair of virtually separate destinations
to a pair of logically contiguous outputs comprising the output with which the destination
from which this pair of virtually separate destinations has originated upon bisection
is associated and a logically contiguous output.
10. A method according to Claim 9, characterised in that the said seventh sub-procedure
(980) comprises the phase of allocating each pair of virtually separate destinations
obtained upon bisection to respective pairs of logically contiguous outputs whilst
respecting the assignment criterion by which the destination from which this pair
of virtually separate destinations has originated upon bisection is assigned to respective
subsets of outputs in the last sorting cycle of the sorting process.
11. A method according to any of Claims 2, 3 or 4, characterised in that it further comprises
the phases of:
- verifying (190) if the improvement obtained with the said first sub-procedure (100)
is not significant or whether a first maximum predetermined time (t0) from when the
first sub-procedure (100) commenced has elapsed; and
- repeating the said first sub-procedure (100) if the improvement obtained is significant
or the said first maximum predetermined time (t0) has not elapsed and;
- performing the said second and third sub-procedure (210-230, 240) if the improvement
obtained is not significant or the said maximum predetermined time (t0) has elapsed.
12. A method according to Claim 11, characterised in that it further comprises the steps
of:
- checking (200) if there are outputs (U) of the machine (1) available to allocate
to the said subsets (A, B, C, D);
- performing the said second sub-procedure (210-230) if there are outputs available
to allocate to the said subsets (A, B, C, D); and
- performing the said third sub-procedure (240) if there are no available outputs
to allocate to the said subsets (A, B, C, D).
13. A method according to Claim 12, characterised in that it further comprises the steps
of:
- repeating the said first sub-procedure (100) after the performance of the said second
sub-procedure (210-230).
14. A method according to any of Claims from 11 to 13, characterised in that it further
comprises the steps of:
- checking (250) if the improvement obtained with the said third sub-procedure (240)
is not significant or if a second maximum predetermined time (t1) from when the second
sub-procedure (240) commenced has elapsed;
- repeating the said third sub-procedure (240) if the improvement obtained is significant
or if the said second maximum predetermined time (t1) has not elapsed; and
- performing the said second procedure (300, 530, 730, 980) for improvement of the
balancing of the load of the outputs (U) of the machine (1) at the end of the first
sorting cycle if the improvement obtained is not significant or the said second maximum
predetermined time (t1) has elapsed.
15. A method according to any of Claims 6, 7, 8 or 9, characterised in that it further
comprises the steps of:
- checking (720) if the improvement obtained with the said fifth sub-procedure (530)
is not significant or if a third maximum predetermined time (t2) from when the fifth
sub-procedure (530) commenced has elapsed; and
- repeating the said fifth sub-procedure (530) if the improvement obtained is significant
or if the said third maximum predetermined time (t2) has not elapsed; and
- performing the said sixth sub-procedure (730) if the improvement obtained is not
significant or if the said third maximum predetermined time (t2) has elapsed.
16. A method according to Claim 15, characterised in that it further comprises the steps
of:
- checking (970) if the improvement obtained with the said sixth sub-procedure (730)
is not significant or a fourth maximum predetermined time (t3) from when the sixth
sub-procedure (730) commenced has elapsed; and
- repeating the said sixth procedure (730) if the improvement obtained is significant
or if the said fourth maximum predetermined time (t3) has not elapsed; and
- performing the said seventh sub-procedure (980) if the improvement obtained is not
significant or if the said fourth predetermined maximum time (t3) has elapsed.
17. A method according to Claim 16, characterised in that it further comprises the steps
of:
- checking (990) if the improvement obtained with the said seventh sub-procedure (980)
is not significant or if a fifth predetermined maximum time (t4) from when the seventh
sub-procedure (980) commenced has elapsed; and
- repeating the said seventh procedure (980) if the improvement obtained is significant
or if the said fifth predetermined maximum time (t4) has not elapsed; and
- terminating the said sorting process if the improvement obtained is not significant
or if the said fifth predetermined maximum time (t4) has elapsed.
18. A method according to any preceding claim, characterised in that it comprises the
steps of:
- performing the said fifth sub-procedure (530) after the said fourth sub-procedure
(300).
19. A method according to any preceding claim, characterised in that it further comprises
the steps of:
- before the said first and second procedure for improving the balancing of the load
of the outputs of the machine (1) at the end of the second and first sorting cycle
respectively, performing a third procedure (30-80) for testing for sufficiency of
the resources for the performance of the sorting process;
- performing the said first and second procedure (100, 210-240, 300, 530, 730, 980)
for improvement of the balancing of the load of the outputs (U) of the machine (1)
at the end of the second and, respectively, the first sorting cycle if the said third
procedure (30-80) has given positive results; and
- if the said third procedure (30-80) has given negative results terminating the said
sorting process and signalling which insufficiency of resources has caused the non-performance
of the sorting process.