Mathematical model of scenery hoist system at theOlivier theatre
S.K. Das, M.Sc.
Indexing terms: Switches and switching theory, Algorithms, Mathematical modelling
Abstract: Theatres generally have a substantial number of hoists etc. for moving scenery during perform-ances, but one never needs to use more than a proportion of them at any one time. The number of drivecontrollers provided can therefore be limited to the maximum number needed for simultaneous use, andthese can be connected to the required set of hoists through a switching network. The paper gives an accountof the design of the switching network developed for the Olivier Theatre, and of the algorithm which selectspaths through this network during operational use. The algorithm is implemented on a minicomputer.
1 Introduction
The National Theatre complex, situated on the south bankof the River Thames in London, contains three separatetheatres, of which the largest is the Olivier Theatre. Thistheatre has elaborate arrangements for moving sceneryduring performances, and it is the control of these move-ments that forms the subject of the present paper.
The scenery can be moved in several ways (see Fig. 1):^ . \ fly tower
scenery 'flown'out
wagon
auditoriumdrumrevolve
Fig. 1 Means of moving scenery at the Olivier Theatre
(a) Most of the stage is covered by a large fly towerequipped with power-operated hoists which can be used invarious combinations to 'fly', i.e. to lift clear of the stage,scenery of almost any size or shape.
(p) The back of the stage can be opened or closed asrequired. On this rear stage, scenery may be assembledbehind sound-proof doors and brought on by motorisedwagons.
(c) Scenery may be moved downwards through thefloor and replaced by a new setting in the same or a differ-ent part of the stage.The latter operation is achieved through a 40 foot drumrevolve, split between two elevators which can operateeither independently or in concert, raising or loweringscenery and actors.
Paper 1018E, first received 28th May and in revised form 28thAugust 1980The author was formerly with the Department of Computer Sci-ence, University College London, London WClE 6BT, and is nowwith the Department of Computer Science, City University, LondonEC1V OHB, England
IEEPR0C, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
The hoist subsystem, i.e. the hardware and softwarewhich controls scenery movements associated with the flytower referred to in (a), is the main subject of our discussion.It has been in operational use for some time.
2 Hoist subsystem
The unique requirements of the Olivier Theatre whichmotivated the design of the hoist subsystem are discussedin earlier papers.1'2'3'4 These requirements culminated inthe recommendation that the theatre be equipped with 170'elements', 35 being the maximum to be powered at anyone time. These elements include large point hoists, barhoists and stage wagons, and constitute part of the hard-ware of the hoist subsystem. From a digital control view-point all can be assumed identical, even though mechan-ically they are very different, and therefore we will referto hoists in the remainder of this paper.
It would be uneconomical to provide one cycloconvertor(drive) for each of the 170 hoists. A possible alternativeof providing 35 drives and a manual facility of plugs andsockets for connecting (patching) n hoists with n drives(1 < « < 3 5 ) would prove too slow and inflexible. There-fore, a system of automatic patching was adopted, andachieved by placing an interface between the hoists anddrives. The interface includes an array of switches, partelectrical and part electromechanical, whose operation iscontrolled by a minicomputer under the supervision of anoperator seated at a control desk about 50 feet above thestage.
Each route through the switching array needs to carryfour power lines to the hoist and three precision analoguesignals. Crosspoint (or switch) elements were chosen aselectrical contactors for the power, and field-effect transis-tors (f.e.t.s) for the analogue signals.
A simple rectangular array of switches would number170 by 35 (= 5950), but this would be uneconomical tobuild and extravagant of space. Furthermore, it wouldpermit any of the 170 hoists to be routed to any of the 35drives, whereas our requirement is simply to route anyhoist to one drive or another; the drive to which a hoist isrouted is unimportant since all drives are identical.
In the routing scheme for switches (Fig. 2), this flexi-bility concerning drives is exploited. A route can be createdbetween a hoist and a drive, using one of r busbars, byclosing:
(a) one of the p hoist-bus switches connected to thehoist
(b) one of the q drive-bus switches connected to thedrive.Note how Fig. 2 illustrates a route between hoist 23 anddrive 4 using busbar 10. The integer variables p, q and r
263
0143- 7062/80/060263 + 12 $01-50/0
are constrained by the inequalities: 1 < p < 3 5 , 1 <q<35and 35 < r < 170. There would be no benefit in connectingwith a busbar, either from a hoist using a single hoist-busswitch (p = 1) or from a drive using a single drive-busswitch (q = 1). In either case, a fixed rather than a switchedconnection would achieve our objective. Therefore, wedefine p > 1 and q > 1. Moreover, there is no benefit inusing p = 35 hoist-bus switches. In this case, having 35fixed rather than 35 switched connections between a hoistand each of the 35 drives would achieve our objective.Having more hoist-bus switches than drives (p > 35) has novalue, and therefore we define p < 3 5 . Similarly, we defineq < 35 so that the number of drive-bus switches is less thanthe number of drives. Clearly, the number of hoists must begreater than the number of busbars (i.e. 170 > r), which inturn must be greater than the number of drives (i.e. r >35).
Fig. 2 Partial illustration of a routing scheme for switches
2.1 Mathematical model
The notation and definitions introduced below will beused to express our problem:d — maximum number of hoists that can be used simul-
taneously = total number of drivesh = total number of hoists (d < h)n = number of hoists required for use simultaneously
. (1 < n < d)p = number of hoist-bus switches per hoist (1 <p<d)q = number of drive-bus switches per drive (1 < q < d)r = total number of busbars (d<r<h)
columnsrepresenting
*~ r buses —"
rows representing170 hoists
35 drives column
bus 10
hoist-bus matrixp ones per row
Trows representing
r buses
drive UFig. 3 Partial illustration of the hoist-bus model H and the bus-drive model D
Hu = 1
/ = used for numbering hoists i = 1, 2 , . . . , hj = used for numbering busbars / = 1, 2, . . . , rk = used for numbering drives k = 1, 2, . . . , dTwo Boolean matrices will be used to represent theswitching scheme of Fig. 2. The hoist-bus switches will berepresented by H of dimension hx r, where
if hoist / can be switched to busbar/= 0 otherwise
The drive-bus switches will be represented by D of dimen-sion r x d, where
Djk = 1 if drive k can be switched to busbar;= 0 otherwise
In Fig. 3, matrix H, the hoist-bus model, and matrix/), thebus-drive model, are used to illustrate a route betweenhoist 23 and drive 4 using busbar 10.
Three Boolean vectors will be used to represent selec-tions of hoists, busbars and drives to meet a specific
i = 1,2, ...,h
j = 1,2,
k = 1,2,
The problem is to determine values p, q and r which mini-mise the total cost of the switches, i.e. to minimise
requirement:V, where (/,- = 1
= 0V, where Vj = 1
= 0W, where Wk = 1
= 0
if hoist/is required,otherwiseif busbar/ is used,otherwiseif drivek is usedotherwise
f(p,q) = hp + dq (1)
subject to the constraints that, given any selection of nhoists, we may close n hoist-bus switches and n drive-busswitches to create n unique routes. This enables n hoiststo be powered by n drives using n busbars. Moreover, wemust decide which p busbars to group together and associ-ate with a given hoist through hoist-bus switches, and whichq busbars to group together and associate with a givendrive through drive-bus switches.
The constraints that any selection of n hoists may beconnected to n drives is equivalent to the existence of thefollowing mapping from any given vector U to some vectorW, both vectors containing n ones. There is a mapping fromU to W if there exists a matrix // ' , formed from H byselecting one 1 from each row for which £/,• = 1 in U,corresponding to a connection from one of the requiredhoists to a busbar, and a matrix D' formed from D byselecting one 1 from each column, corresponding to aconnection from a busbar to a drive, such that
H'TU = V = D'W (2)
F o r e x a m p l e , if ft = 6,r = 4,d = 3,n = 3 , a n d t h e ma t r i ce sH, D, U a n d W are given by
H =
0 0
0 0
0 0 1
D =
264 IEEPROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
u =
1
0
0
1
0
1
w =1
1
1
then, by defining matrices H' and D' as
1 0 0 0
H' =
0 0 0 0
0 0 0 0
0 1 0 0
0 0 0 0
0 0 0 1
D' =
1 0 0
0 1 0
0 0 0
0 0 1
the vector
V = 1
0
1
satisfies the mapping defined in eqn. 2.The problem of minimising f(p,q) is a combinatorial
problem of considerable size and the overall optimum wasnot obtained. Instead, the restricted optimum, consideringblock schemes for the hoist-bus switches based on cyclicrotation, was obtained. This scheme will be described inSection 2.2. The results described in Section 4 show thatthere is a considerable reduction in the total number ofswitches using this scheme compared with the scheme ofconnecting every hoist to every drive.
2.2 Hois t-bus m ode I
To construct a hoist-bus model H it is necessary to:(a) assign a value to p (i.e. how many ones are there to
be in each row?)(b) designate to which p busbars a given hoist is switchable
(i.e. where in each row are thep ones to be positioned?)The designation specified in (b) is achieved by using a 'cyclicblock scheme' for constructing H. Once p has been speci-fied, the p busbars to group together and associate with agiven hoist through hoist-bus switches is implicit in thedefinition ofH-p,m = 1,2,. .. ,b given below.
Given a prime integer s such that
s2>h (3)
let" us define b=\h/s\ (i.e. the smallest integer >h/s)Then, a matrix H will be constructed to consist of {b — 1)blocks, each block containing s rows, and a last blockcontaining the final (h — s (b — 1)) rows. This partitioningcorresponds to forming b blocks of hoists, each blockcontaining s hoists with the exception that the last blockcontains the remaining hoists.
Let us assume that p is specified. (The specification of
p will be discussed later, in Section 4.) The number ofbusbars required is
r = ps (4)
Every row of H has p nonzero elements. For the firstblock Hi, we define nonzero elements in row / to be incolumns /, / + s,. . . , / + (p — 1) s; i.e.
Hi = 1 for/ = / ! (/, t) = i + ts, with
/ = 1,2, . . . ,s= 0 otherwise
The subsequent blocks / / m + 1 , where m = 1, 2 , .are constructed from H1 by cyclic rotation, thusHf? + 1 = 1 for / = / m + i ( / ,0, w i t h ^ = 0 , 1 , .where if m + 1 <.b,ms < / < (m + 1)5,
b-\
p-\
or if m + 1 = b, (b-\)s < i
= 0 otherwise
h,
The busbar numbers / m + 1 (/ + s, 0 for the rows (/ + s) inthe (m + l)th block are defined as follows:
im*i 0 + *> 0 =/m 0' + t> 0 i f i+t<ms~ im (i + t — s, t) if / + t > ms
where, if m + 1 <b,ms<i + s< (m + l)s,
orifm+l=b, (b - l)s < i + s < h.
Consider an example where the total number of hoistsh = 37 and the prime integer s = 7. Therefore, the numberof blocks into which H is partitioned b = [37/7] = 6. Letus assume the number of hoist-bus switches per hoist p — 3,then the number of busbars r = 21. There are two matriceswhich may be used to represent this example of a cyclicblock scheme; the hoist-bus model H (Table 1) of dimen-sion h by r, and the hoist-bus table (Table 2) of dimensionh by p, which is constructed from H in Table 1. For eachrow in H, there are p nonzero elements. The p columnnumbers of the columns containing a one in row /, / = 1,. . . , h, become the elements for row / in the hoist-bustable. Therefore, the hoist-bus table has rows corre-sponding to hoist numbers, and elements which are thebusbar numbers j m (i, t), m = 1, 2, . . . , b to which hoist /,1 < / < h, can be switched.
Consider only the n rows of H which correspond toUi•= 1 in U, i= 1, . . . ,h. Performing an inclusive-Ofloperation on the n rows results in a 1 by r vector. Let p bethe number of ones in this vector. Therefore, p<*p' <^r,and p' is the total number of columns in these n rows ofH containing at least one 1. Thus, p' is the total number ofbusbars to which the n hoists are switchable, the n hoistsbeing defined in U. A necessary but not sufficient conditionfor the existence of the mapping H'TU = V (see eqn. 2) isthat
n < p' (5)
In the example of Section 2.1, the hoist-bus table corre-sponding to H is
hoists busbars
U =
IEE PROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980 265
ii
123
H1 4567
89
10H2 11
121314
151617
H3 18192021
222324
H* 25262728
293031
Hs 32333435
36H6 37
Table 1: Hoist-bus model H for h = 37, s = 7 and p =
t = 0
1 2 3 4 5 6 7
11
11
11
1
11
11
11
1
11
11
11
1
11
11
11
1
11
11
11
1
11
t = 1
8 9 10 11 12 13 14
11
11
11
1
11
11
11
1
11
11
11
1
11
11
11
1
11
11
11
1
11
3
f = 2
15 16 17 18 19 20 21
11
11
11
1
11
11
11
1
11
11
11
1
11
11
11
1
11
11
11
1
11
The n hoists (n = 3) defined in U are 1, 4 and 6, and eachhoist is switchable to p busbars (p = 2), which are 1 or 2, 2or 4, and 3 or 4, respectively. Therefore, hoists 1, 4 and 6are switchable to busbars 1, 2, 3 and 4: a total of four.Expr. 5 is satisfied because n = 3 and p' = 4.
The necessary condition defined in expr. 5 encouragesus to construct H so that, given n hoists, p is a maximum.In addition to defining the position of p ones in each rowof H, a cyclic block scheme has the additional advantageof trying to maximise p'. The following theorem provesthat if a hoist is switchable to one of two busbars, noother hoist is switchable to the same two busbars. Forexample, by selecting four rows from Table 2:
hoist numbers12192633
busbar numbers5 13 215 14 165 8 185 9 20
we observe that hoist 12 is switchable to either busbar5 or 13. N6 other row in Table 2 contains both 5 and 13.Similarly, hoist 19 is switchable to either busbar 14 or 16,and no other row contains both 14 and 16. For n = 2,using hoists 12 and 19, p = 5. By adding hoist 26, n = 3
266
and p' = 7, and for hoist 30, n = 4 and p' = 9. Althoughwe have tried to restrict p' by choosing four hoists, all ofwhich were switchable to busbar 5, for this example, p' isfound to increase in value for each increment of n.
Theorem
Given any two busbars numbered v and w, there is at mostone row of H such that Hiv = Hiw = 1.
Proof: We can assume without loss of generality that v > w.There is one row in the first block Hx for which theelement in column v is 1. This element will be in row /given by
t = fy/sl - 1
/ = v — ts(6)
The other rows of H which contain a 1 in column v aregiven by / = /m + j for m = 1, 2, . . . , b — 1 where
h — f, and
im+i = im-t + s if (im -t) > ( m - l ) s ,
or = im - t + 2s if (im -t) < (m-l)s
IEEPROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
Table 2: Hoist-bus Table corresponding to H in Table 1, showingvalues of jmU, t)
m = 1
m = 2
m = 3
m — 4
m = 5
m = 6
/'
1234567
891011121314
15161718192021
22232425262728
29303132333435
3637
t = 0
1234567
1234567
1234567
1234567
1234567
12
f= 1
891011121314
910111213148
101112131489
111213148910
121314891011
1314
f=2
15161718192021
17181920211516
19202115161718
21151617181920
16171819202115
1819
Thus, for m>2, im.1 (v) — t + s = im.l (w) — u + s(mod s), i.e. im.l(v)-im.1(w) = (t-u)(mod s), andtherefore, reducing this iteratively,
When m = b — 1, we disregard any / derived from thisiterative formula which yields im+l > h. The values ofim+i are also given by
im+i = im -t + s (mods)
using the known ranges
ms < im+l < (m + ])s, if m < b — 1
(b-l)s < im+l < h, if m = b-\
These values of / depend on v, and will be denoted byim (y),m = 1,2, . . . ,b. Thus,
'i 00 = />
im 00 = im -1 00 - t + s (mod s) for m = 2 , 3 , . . . ,b
Similarly, the rows of H which contain a 1 in column w aregiven by
u = \w/s] — 1 and g = w — us. , , (7)
/, (w) = g
im (w) s im_1 (w) — u + s (mod s)
for m = 2, 3, . . . , bTherefore, any rows which contain a 1 in column v andcolumn w are given by im (v) = im (w) for m = 1, 2, . . . , b.IEEPROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
~g = (t — u)(m — l)(mods) (8)
We shall first prove that there is no solution if t = u. Ift = u, then, from expr. 8, f—g = 0(mods). However,from eqns. 6 and 7,f—g = (v — ts) — (w— us). Therefore,if t = u and since v > wj — g> 0. Since / and g are rownumbers in Hl ,f—g<s, that is, 0<f—g<s, and there-fore, /—# $ 0 (mod s). Thus we have a contradiction^and therefore, when t = u there is no value of m whichsatisfies expr. 8.
If t>u, the general solution to expr. 8 is m ~ m' +sC, where C = 0, ± 1, ± 2 , . . . and m is a particular sol-ution (Appendix 1). Therefore, there is just one value of min the range l < m < s . But, s2>h, and b<(h/s)+l.Thus, b <s + 1, i.e. b < s . Therefore, there is at most onevalue of m in the range 1 < m < b, which implies thatthere is at most one value of / = im (v) = im (w) in therange 1 < / < h for which Hiv = Hiw = 1. Q.E.D.
2.3 Bus-drive model
There are two reasons why we do not adopt cyclic blockschemes for determining q, and constructing the bus-drive model D (an example of D has been given in Section2.1). First, consider the problem if n is a maximum, i.e.n = d. For the matrix H of dimension h x r we attempt topatch n of h hoists to n of r busbars, where n < r by defi-nition. However, for the matrix D of dimension r x d, weattempt to patch n of r busbars to n of d drives, wheren = d for this case. In the former matrix, the number ofcolumns r is strictly greater than the number of rows n inuse, whereas in the latter, the number of columns d and thenumber of rows in use n are equal.
Secondly, since the number of ones in each column ofD is q, the average number of ones per row is qd/r, whichin general is not an integer. Therefore, a cyclic blockscheme which implies a constant number of ones in everyrow cannot be used.
An example (Table 3) of D for r = 11 and d = 5 will beused to illustrate how q may be calculated. Four zeros arethe maximum we can insert in any one column since fivezeros in a column would mean that five busbars (rows)could be selected such that no drive-bus switch exists forthat drive (column), and we would have a patching failure(Table 4). Rows 2, 5, 8 and 9 from Table 3 have been used,togetlier with an incomplete row containing zero in column3. An * means an entry is undefined.
Table 3: Example of D for r = 11 and d = 5
busbar
nos.
1234567891011
drive nos
1
00001111111
2
01110001111
3
10110110011
4
11011010110
5
11101101001
,
3 ones per row
4 ones per row
q = 7 ones per column
267
Table 4: Patching failure for drive 3
drives
b
usbars
kj
2589
1
0111*
2
1011#
3
00000
4
1101
5
1110*
In general, therefore, for a matrix D of dimension r x d,the maximum number of zeros allowed in any column isd — \. Thus,
Qmin = r-{d-\) (9)
and, using eqn. 4, qmin = (ps)— d + 1. Therefore, fromeqn. 1, and using this minimum value of q, f(p,q) =(h + ds)p —d (d — 1). Since h and d are constants and 5,once defined by expr. 3, is fixed,
/ = f(p) (10)
Thus, to minimise the cost of switches defined in eqn. 1,(a) s must be the smallest prime integer to satisfy expr. 3(b) the integer p should be a minimum such that the
following mapping exists: H'TU = V (see eqn. 2).The analysis gives a lower bound on q, which is qmin
(see eqn. 9), and a lower bound on the total number ofones in matrix D, which is qd. Therefore, we know theminimum number of ones allowed per column, but thisdoes not provide any information on how many ones tohave per row. In Table 3, the number of ones per row isdistributed as uniformly as possible, i.e. nine rows withthree ones and the remaining two rows with four ones.Therefore, qd = 7 x 5 = 35 = 11 x 3 + 2 = (9 x 3) + (2 x4). For all other matrices D which we construct, we willchoose the minimum value of q, and distribute the numberof ones per row as uniformly as possible. Note, however,
Table 5: Bus-drive model D for r = 21 and d = 10
drive numbers
busbar
numbers
k
i
123456789
101112131415161718192021
1
100101101010010110111
2
011010110101001111010
3
101101010011101101001
4
110111101011010110000
5
011011110111101000001
6
101100111110110001100
7
010111011101011000110
8
101010101110101010011
9
110100010101110101110
10
011011001000111011101
6 ones per row
5 ones per row
that in general any D is not unique. An example hoist-busmodel H was shown in Table 1, for h=31 and r = 2\.Using the ideas developed above, we construct a corre-sponding bus-drive model D for d = 10 (Table 5). In Table6, we translate this bus-drive model D into a bus-drive tablewhose rows correspond to busbar numbers and whoseelements are drive numbers. In Tables 1 and 5 we representa mathematical model for h = 37 and d = 10. Tables 2 and6 together are equivalent to this model, and are used in thefollowing Section to illustrate the algorithm for deter-mining routes.
Table 6: Bus-drive Table corresponding to D in Table 5
busbar
numbers
j
123456789
101112131415161718192021
drive numbers
122121121212312112111
343343234
CJl
33
CJl
43223623
455454456644665346775
676675
CJl
67755877489988
8987876788679989
101099
10
910109
101089
10989
101010
q — 1 2 ones per column
3 Routing algorithm
We can look upon the present study as having two objec-tives:
(a) to produce a design strategy for constructing the twotables of numbers which are eventually realised in hardwareas an array of crosspoint switches
(b) to produce a routing algorithm which, given n hoistnumbers, searches the two tables to produce n busbarnumbers and n drive numbers so that the hardware of thecrosspoint array can be switched to create n routes.At the time the project was started the time available forits completion was limited and so no thorough study ofpublished routing algorithms was carried out. Instead, analgorithm was designed quite independently, and, in prac-tice, this has proved entirely satisfactory.
However, there are three ways in which a routing algor-ithm could conceivably fail, and the present algorithm hasnot been proved to avoid them. They are:
(i) failure to find an existing hoist-bus mapping(ii) finding a hoist-bus mapping for which no corre-
sponding bus-drive mapping exists(iii) failure to find an existing bus-drive mapping.
It has since been pointed out to the writer that the routingproblem can be presented as a network-flow problem,5'6
and that an algorithm which is guaranteed to avoid theabove failures is the maximal flow algorithm (for detailssee Section 4.5 of Reference 5 and Section 6.5.3 of Refer-ence 6). In any future implementation the use of thisalgorithm would be seriously considered, but the onedescribed in the following Section is the one in actual use.
268 IEEPROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
3.1 Algorithm description
Determination of routes will be illustrated using an examplewhere the total number of hoists h = 31, busbars r— 21,drives d = 10, and the number of hoists in use n = 10 arenumbered 1, 6, 8, 13, 18, 20, 25, 27, 32 and 33. Thealgorithm divides naturally into two phases; the first usesn hoists and searches an array of hoist-bus switch numbersfor n busbars, and the second uses n busbars and searchesan array of drive-bus switch numbers for n drives. The datastructures to be used during the first phase are displayed inTables 2, 7 and 8.
hoist
168
13182025273233
Table 7:
1616464645
Arrays hoist, bus and allocated
bus
8139
14138
14989
15201715151717191920
allocated
1520171413
849
195
k
occur
k
occur
Table 8:
1
2
11
0
2
0
12
0
Initial values in vector occur with p
3
0
13
2
4
3
14
2
5
1
15
3
6
4
16
0
7
0
17
3
8
3
18
0
= 12
9
3
19
2
10
0
20
2
21
0
START:RESTART:
INCVAL:
FINISH:
The elements hoist (/) (/ = 1,. . . , n) specify the nhoists in use, sorted into ascending order so that the busbarallocations remain the same between different executionsof the routing algorithm. Vector hoist is not changed by thealgorithm.
The elements bus ( / , / ) ( /= 1, . . . , n; / = 1, . . . , p) arethe busbars which may be connected to the hoists specified
IEEPROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
in hoist, and is constructed by taking appropriate rowsfrom the hoist-bus table of Table 2. Array bus is notchanged by the algorithm.
The elements allocated (i) (/= 1 , . . . , « ) are zero,initially. During the first phase of the algorithm, as eachbusbar from bus is connected to a hoist in hoist, its numberis deposited in the appropriate element of vector allocated.In Table 7, we display the elements of allocated producedby the first phase of the algorithm.
The elements occur (k) (k = 1 , . . . , r) are initially thenumber of occurrences of busbar k in bus (Table 8). Forexample, busbar 6 occurs four times in the columns of bus.Therefore, occur (6) = 4. Note, also, that p' = 12 is theinitial number of nonzero elements of vector occur, and p'is constrained by expr. 5. Each time a busbar is connectedto a hoist, the appropriate elements of occur are modified.For example, in Table 7, when connecting bus (10, 1) tohoist (10), i.e. closing the hoist-bus switch connectingbusbar 5 to hoist 33, the following assignments would beexecuted:
allocated (10): = bus (10, 1) = 5;occur (5): = 0;occur (9): = occur (9) — 1;occur (20): = occur (20) - 1;
Expr. 5 constrains the number of hoists which are yet to beconnected to a busbar, never to be greater than the remain-ing number of nonzero elements in occur. Otherwise,there would be insufficient busbars to connect to theunallocated hoists. The elements of occur are finally zero.
Algol 60 is used to express the essential features of thefollowing routing algorithm:
beginvalue: = 1;for k:—r step — 1 until 1 do
if occur (k) = value thenbegin
for/: = p step — 1 until 1 dofor /: = n step — 1 until 1 do
if bus (/,/) = k and allocated (i) = 0 thenbegin
allocated (/): = k; occur (k): = 0;for;): = p step — 1 until 1 do
if occur (bus (i, //)) > 0 thenoccur (bus (i, //)): = occur (bus (i, //)) - 1;goto START
end;goto ERROR. EXIT. 1
end;for k: = r step — 1 until 1 do
if occur (k) * 0 thenbegin
value: = value + 1;if value > maxvalue then goto ERROR. EXIT. 2else goto RESTART
end;for /: = n step — 1 until 1 do
if allocated (i) = 0 then goto ERROR_EXIT_3end
Three for loops, with labels RESTART, INCVAL andFINISH, are used. In each, the loop counter is decrementedinstead of incremented to remain consistent with the finalversion of the routing algorithm, which is written inassembly language suited to decrementing loop counters.
In for loop RESTART, during the first phase of thealgoithm, we search occur for an element equal to the
269
integer variable value, which is initially equal to one. Valueis used in an attempt to introduce priority allocation ofbusbars to hoists. If there exists a busbar kk which can onlybe switched to a single hoist at this point in the algorithm,i.e. occur (kk) = value = 1, it seems desirable to performthis allocation immediately. If we find an element of occurequal to value, then the index k of occur gives the busbarnumber which we try to allocate next to a hoist. Therefore,bus is searched for an unallocated (signified by allocated(/) = 0) busbar number k, and, when successful, the busbaris assigned to the hoist by the statement allocated (/): =k, then occur is modified and a branch to the START ofthe algorithm is taken.
If we are unable to find an element of occur equal tovalue, the for loop INCVAL is invoked. Here, as long as anelement of occur is nonzero, value is incremented by one,and if its upper bound has not been exceeded the algorithmis RESTARTed.
However, when all the elements of occur are zero, i.e.no more busbars are available for allocation, the third forloop FINISH is entered to determine if each hoist has beenallocated a busbar. If an element of allocated is zero, nobusbar has been assigned to the corresponding hoist.Otherwise, n hoists have been successfully routed to nbusbars and, therefore, the second phase is entered. Finally,note that, in practice, we have never used any of the threeERROR-EXITs, and, furthermore, examination of thealgorithm shows that an exit via either 1 or 2 is not poss-ible. The data structures to be used during the secondphase are displayed in Tables 6, 9 and 10.
busbars
4589
131415171920
Table 9
1221312111
: Arrays busbars, drive and allocated
3434
CJl
43262
4556665477
drive
6767877898
7878998
10109
9109
10101010
000
allocated
910
38675412
k
occur
Table
1
6
10:
2
CJl
Initial values in vector occur with p" —
3 4 5 6 7 8
4 5 4 6 8 6
10
9
6
10
7
The elements busbars (i) (/= 1 , . . . , « ) are the n busbarnumbers deposited in vector allocated during the firstphase, sorted into ascending order so that the drive allo-cations remain the same between the different executionsof the routing algorithm. Vector busbars is not changed bythe algorithm.
The elements drive (/,/) (i = 1,. . . , n\j = 1,. . . ,\(qd)/r]) are the drives which may be connected to thebusbars specified in busbars, and is constructed by takingappropriate rows from the bus-drive table of Table 6. Arraydrive is not changed by the algorithm.
The elements allocated (/) (/= 1 , . . . , « ) are zero,initially. During the second phase of the algorithm, as eachdrive from drive is connected to a busbar in busbars, itsnumber is deposited in the appropriate element of vectorallocated. In Table 9, we display the elements of allocatedproduced by the second phase of the algorithm.
The elements occur (k) (k — 1,. . . , d) are initially the
number of occurrences of drive k in drive (Table 10). Forexample, drive number 7 occurs eight times in the columnsof drive. Therefore, occur (7) = 8. Let p" be the totalnumber of drives to which the n busbars are switchable,the n busbars being determined during the first phase. Thus,\qd/r] — 1 <p" <d and p" is the initial number of non-zero elements of vector occur. Similar reasoning which ledto expr. 5 (i.e. n<p') yields p" constrained by theinequality rc < p". Therefore, p " of the second phase is verysimilar to p' of the first phase. Each time a drive is connec-ted to a busbar, the appropriate elements of occur aremodified. For example, in Table 9, when connectingdrive (7, 3) to busbars (7), i.e. closing the drive-bus switchconnecting drive number 5 to busbar number 15, thefollowing assignments would be executed:
allocated (7): = drive (7,3) = 5;occur (5): = 0;occur (k): = occur (k)-l fork = 2 , 3 , 7 , 8 , 10;
The inequality n < p" constrains the number of busbarswhich are yet to be connected to a drive, never to begreater than the remaining number of nonzero elementsin occur. Otherwise, there would be insufficient drives toconnect to the unallocated busbars. The elements of occurare finally zero.
During the second phase, we reuse the Algol 60 com-pound statement of the routing algorithm. Since thedimension of occur changes between the two phases, thefor loops with labels RESTART and INCVAL will have tobe modified from k: = r to k: = d. In addition, we substi-tute drive for bus throughout the routing algorithm,because the data structure used in the second phase is asin Table 9, while that in the first was as in Table 7. Thismeans that the for loops begining with /: = p and jj: = p,both appearing in the for loop with label RESTART, willhave to be modified to /: = q and ;/: =q', where q' =, \(qd)/r). The terminating conditions of the second phase.are the same as those of the first phase. Note, finally, thatthe routes for the example discussed in this Section aregiven in Table 11.
Table 11: Routes for an example where n = 10
hoists busbars drives
168
13182025273233
1520171413
849
19
CJl
CJl
24763981
10
4 Results
Given h and d, the procedure for constructing the hoist-busand bus-drive tables is summarised.
(a) Compute s so that it is the smallest prime to satisfys2 > h (see expr. 3).
(b) Specify a trial value of the integer p starting at 2 andincreasing by 1 until a possible scheme is attained.
(c) Compute r from r = ps (see eqn. 4).(d) Construct the hoist-bus table using a cyclic block
scheme.(e) Calculate qmin from qmin =r — d+l (see eqn. 9).(/) Construct a bus-drive model D distributing the number
270 IEEPROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
of ones per row uniformly, and translate into the bus-drivetable. Note that Boolean matrix D is not unique.
(g) For comparison of different schemes, compute /from/(p, q) = hp + dq (see eqn. 1).This procedure will be applied to two different schemes(schemes 3 and 4) and compared with two others (schemes1 and 2), for the values ^ = 170 and d = 35.
4.1 Scheme 1
Permitting each hoist to switch to each drive can be rep-resented as a single Boolean matrix of dimension 170 x 35,where every element is equal to one. This would require170 x 35 = 5950 switches.
4.2 Scheme 2
The technique of inserting zeros into each column of amatrix, as illustrated in Table 3, (Section 2.3), can beapplied to scheme 1. This yields (h — d + \)d = (170 —34) 35 = 4760 switches, a reduction of 1190 switches.
4.3 Scheme 3
0)00
(iii)(v)
(vii)For
s = 17 (smallest prime >\/T70)p = 4 (see below)r = 68Qmin ~ 34-/ = (170 x 4) + (35 x 34) = 1870= l or 2 the constraint r > 3 5 is not satisfied.
Table 12:
hoist
nos.
11835526986
103120137154
21936537087
104121138155
32037547188
105122139156
421385572
Selection of n = 35 hoists showing 1 < pa cyclic block scheme where s = 17
busbar nos.
values of p1
1111111111
2212222222
3333333333
44444
2
18192021222324252627
19202122232425262728
20212223242526272829
2122232425
< 4,
3
35373941434547495136
36384042444648503537
37394143454749513638
3840424446
taken from
4
52555861646753565962
53565962656854576063
54576063665255586164
5558616467
Moreover, we reject p = 3 because an example (Table 12)can be constructed from a cyclic block scheme for h = 170and s = 17, where expr. 5, i.e. n<p', is not satisfied. Forp = 1, 2, 3 and 4 we find p' = 4, 16, 33 and 50, respect-ively. Here, n = 35, i.e. the example uses 35 hoist numberswhich are recorded in the left-hand column of Table 12;but note that they are not in ascending order. The 35hoists were deliberately selected as those which couldswitch to busbars 1, 2, 3 or 4, in an attempt to restrict p ' .
For p = 4, r takes the value 68 and p' = 50. Becausef=f(p) (see expr. 10), the integer p must be a minimumwithout introducing patching failures. Thus, the routingalgorithm was tested thoroughly with p = 4, for variousvalues of n. No patching failures were found, which weattributed to the excess of the value p over the value n\in the example of Table 12, p ' — n- 5 0 - 3 5 = 15. So, weadopted the value p = 4. Note, however, only a necessary,but not a sufficient, condition for the existence of themapping H'TU= V (see eqn. 2) has been established forp = 4, with 5 = 1 7 and 1 < « < 3 5 . If a patching failureever occurred, it would be necessary to adopt p = 5, andretest the algorithm.
4.4 Scheme 4
In scheme 3, s = 17. Because the largest prime < 17 is 13,and 132 = 169, we investigated the case 5= 13 for 169hoists using a cyclic block scheme, and selected p busbarsourselves to assign to the 170th hoist.
Table 13:
hoist
nos.
114274053667992
105118131144157
215284154678093
106119132145158
316294255688194
107
Selection of n = 35 hoists showing 1a cyclic block scheme where s =
busbar nos.
values of p1
1111111111111
2222222222222
333333333
2
14151617181920212223242526
15161718192021222324252614
161718192021222324
<p < 4,13
3
27293133353739283032343638
28303234363827293133353739
293133353739283032
taken from
4
40434649524245485141444750
41444750404346495242454851
424548514144475040
IEEPROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980 271
(i) 5 = 1 3(ii) p = 4 (see below)
(iii) r = 520 ) Qmin = 18
(vii) / = (169 x 4) +(35 x 18) =1306For p = 1 or 2 the constraint r > 35 is not satisfied. More-over, we reject p = 3 because an example (Table 13) canbe constructed from a cyclic block scheme for h = 169and 5 = 1 3 (see the block scheme in Appendix 2), wherethe inequality n < p ' is not satisfied. For p — 1, 2, 3 and 4we find p = 3, 16, 29 and 42, respectively. Here, n = 35,i.e. the example uses 35 hoist numbers which are recordedin the left-hand column of Table 13; but note that they arenot in ascending order. The 35 hoists were deliberatelyselected as those which could switch to busbars 1, 2 or 3, inan attempt to restrict p ' .
For p = 4, r takes the value 52 and p = 42. Note also,in the example of Table 13, p — « = 42 — 35 = 7. Usingsimilar arguments to those of Section 4.3, we adoptedp-4, for s = 13, h = 169 and 1 < « < 3 5 . For hoist 170,busbars 1, 14, 28 and 43 were selected. From Appendix 2,we see that, although busbars 1 and 14 are switchable tohoist 1, and busbars 14 and 28 are switchable to hoist 26,busbars 1, 14 and 28 are switchable to hoist 170 only. Weused the same approach when choosing busbar 43. Notethat f(p, q) = 1306 and with these four additional hoist-busswitches the total number of switches is 1310.
4.5 Concluding remarks
Of the four schemes discussed, only 3 and 4 use an accep-able number of switches, the latter being preferred becauseit uses the least. In all routing algorithm tests a patchingfailure in scheme 4 has never been discovered. The hoist-busand bus-drive tables for scheme 4 are displayed inAppendixes 2 and 3, respectively. Once realised in hardware,the switching array becomes a permanent part of a hoistsubsystem. Moreover, a program which accepts as inputn hoist numbers, and produces n routes in a form similarto Table 11 for further processing, has to be written.
In operational use, an operator communicates a set ofhoist numbers to software in a minicomputer via a speciallydesigned theatrical control panel. In this way the hardwarearray of crosspoint elements is switched so that power isrouted between drives and hoists. Since the patching isautomatic, the operator is not aware of which busbars anddrives are used and, indeed, this information is of noconcern to him. His only concern is that the hoists hespecifies should move when required to do so.
The design strategy of Section 2 was used to constructthe array of crosspoint elements, and the routing algorithmof Section 3.1 has been implemented as an assembly-language program which runs on a minicomputer.
5 Acknowledgments
The author is grateful to Evershed Power-Optics Ltd.,Chertsey (in particular Roger Keenan) and Theatre ProjectsConsultants Ltd., London, whose imaginative ideas for theOlivier Theatre provided him with such a challenging,stimulating and interesting project, Nigel Martin and SteveTreadwell, University College, London, whose assistancewith document preparation has proved invaluable, and JohnSnell, City University, London, for many enriching dis-cussions on matrix theory.
He wishes to express his particular appreciation to Prof.V.E. Price, City University, London, whose constructivesuggestions, perceptive criticisms, and careful readings havematerially improved this paper.
6 References
1 DAS, S.K., and KEENAN, R.H.: 'The National Theatre's sceneryhoist matrix scheme'. Proceedings of the European computingsymposium (Decus), 1977, pp. 261-264
2 BRETT, R.G.: 'Electronics at the National Theatre', Electron. &Power, 1979, (10), pp. 715-718
3 KEENAN, R.H.: 'The National Theatre's scenery flying system',ibid., 1979, (10), pp. 719-722
4 'A quick change of scene*. Datalink, 15th Jan. 1979, p. 115 LAWLER, E.L.: 'Combinatorial optimization: Networks and
matroids' (Holt, Rinehart & Winston, 1976) ch. 46 CARRE, B.A.: 'Graphs and networks' (Oxford University Press,
1979), ch. 67 GELFOND, A.O.: The solution of equations in integers' (trans-
lated from the Russian by Roberts, J.B., Reed College, USA)(W.H. Freeman & Co., San Francisco) p. 4
7 Appendixes
7. / Appendix 1
In the first chapter of "The solution of equations inintegers'7 there is a discussion of first degree, integerequations in two unknowns and, in particular, a proof ofthe following theorem.
Theorem
Let a and b be relatively prime, and let x',y' be anysolution of the equation
ax + by + c = 0 (11)
Then the formulas x = x' — bt, y = y' + at for t — 0, ± 1, ±2 , . . . give all solutions of eqn. 11.
Applying this theorem to our problem, we recall thatf—g = (t — u)(m — l)(mod s) (see expr.8). Letx = m — \,a = t — u and f—g = — c. Then, ax + c = 0 (mod s) whichimplies "that ax + c — sy. Therefore, ax — sy + c = 0.Let b = — s; then ax 4- by + c = 0. Therefore, using thetheorem above, x =x' — bC for C= 0, ± 1, ± 2 , . . . , i.e.m — m + sC, where m' = x' + 1.
272 IEE PROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980
7.2 Appendix 2
This Appendix illustrates a hoist-bus Table for h = 169,5 = 13 and p = 4, constructed using a cyclic block scheme.Note that row 170 has been constructed in the waydescribed in Section 4.4 (i.e. cyclic rotation has not beenused for this row).
12345678910111213
14151617181920212223242526
27282930313233343536373839
40414243444546474849505152
12345678910111213
12345678910111213
12345678910111213
12345678910111213
14151617181920212223242526
15161718192021222324252614
16171819202122232425261415
17181920212223242526141516
27282930313233343536373839
29303132333435363738392728
31323334353637383927282930
33343536373839272829303132
40414243444546474849505152
43444546474849505152404142
46474849505152404142434445
49505152404142434445464748
53545556575859606162636465
66676869707172737475767778
79808182838485868788899091
9293949596979899100101102103104
12345678910111213
12345678910111213
12345678910111213
12345678910111213
18192021222324252614151617
19202122232425261415161718
20212223242526141516171819
21222324252614151617181920
35363738392728293031323334
37383927282930313233343536
39272829303132333435363738
28293031323334353637383927
52404142434445464748495051
42434445464748495051524041
45464748495051524041424344
48495051524041424344454647
105106107108109110111112113114115116117
118119120121122123124125126127128129130
131132133134135136137138139140141142143
144145146147148149150151152153154155156
157158159160161162163164165166167168169
170
12345678910111213
12345678910111213
12345678910111213
12345678910111213
12345678910111213
1
22232425261415161718192021
23242526141516171819202122
24252614151617181920212223
25261415161718192021222324
26141516171819202122232425
14
30313233343536373839272829
32333435363738392728293031
34353637383927282930313233
36373839272829303132333435
38392728293031323334353637
28
51524041424344454647484950
41424344454647484950515240
44454647484950515240414243
47484950515240414243444546
50515240414243444546474849
43
IEE PROC, Vol. 127, Pt. E, No. 6, NOVEMBER 1980 273
7.3 Appendix 3
This Appendix illustrates a bus-drive Table for r = 52,q = 18 and d = 35. Note however, this table is not unique.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
1231231121121411312341231234123122412312341231234332
3444544
CJI
634
CJI
37
CJI
274
CJI
6526745655662537
CJI
6743665674567564
89789679779768868
CJI
11875785897897496891089587689689101097
9141011121011121011121089108121014991189111013101013108131011131111131011910111210111212111210
11161215141314141314141311121311151316121314121314121611121711121714151814151814161212161314161313131312
15211717161717171817171814151914161518151516151617151914161914162018162018202015201714211516171516161513
17231918192018191919201915162115211920171818171821182017182018192421192319252119242115241720211819171816
22252422222321222021222119202220222422211921252024232220232220232622232421262324252220272122232122182119
25282525232425252627252223242522232625232424262627252623272622272825262624272627282626282226242425232423
29293129262728262728282627282823242830262725322728282927282823283229293125302928293127292832272827242725
32303230303132303231293031293031303031322930332930313230313233313333303329323129303432333134293031272930
34343432333435333435333435323234323334353334353134353333323334343534343531353532333535353435333433293031
353535333135
Sunil K. Das was born, brought up andeducated in Harrow, England. He hasbeen resident in London since beingawarded a Bachelor's degree in Math-ematics by the University of Surrey,and a Masters degree in NumericalAnalysis and Computing by theVictoria University of Manchester. In1970 he was appointed as a lecturer inthe Department of Mathematics atCity University, London. In 1977,
Mr. Das was granted leave of absence to take up a positionas a Research Fellow in the Computer Networks ResearchGroup (Indra), Department of Computer Science, Univer-sity College, London. In 1980, he returns to City Univer-sity as a lecturer in the newly formed Department ofComputer Science.
274 IEEPR0C, Vol. 127, Pt. E, No. 6, NOVEMBER 1980