The study of interference-free multicast using non-orthogonal channels for Multi-Radio and Multi-channel Wireless Mesh Networks Wen-Lin Yang, Wei-Tsung Huang Dept. of Computer and Information Engineering, National University of Tainan, Taiwan,
[email protected]
Abstract—Considering a video/audio server deployed on the gateway node of a wireless mesh network, a large amount of clients distributed on various mesh routers may wish to receive multimedia streams from the server simultaneously. A multicast tree would be a suitable mechanism to deliver subscribed streams to all the destinations. For multi-radio and multi-channel wireless networks, however, it is better to allocate interferencefree channels to the multicast tree to improve the quality of multimedia streams transmitted. Instead of only orthogonal channels considered for the multicast tree in the previous works, all the available channels are used for multicast in this study. As a result, the number of links successfully allocated channels should be much more than the method that only orthogonal channels are considered. In addition, the number of stream subscribers are increased. Hence, the goal of this study is to find an interference-free multicast tree that can lead to the maximal number of serviced subscribers. This problem is referred as the M R2 problem. To solve the problem, we present two heuristic algorithms that can efficiently construct multicast trees , which are then processed by a load-based DFS channel assignment procedure to allocate interference-free channels to the links. A set of experiments is also designed to do performance and delay comparisons for the multicast trees generated by the approximation algorithms proposed in this study. Keywords-non-orthogonal channels, wireless mesh networks, channel assignment, multicast routing.
I. I NTRODUCTION The backbone of a wireless mesh network (WMN) consists of a number of mesh routers (MRs) where one of them acts as the gateway node for other MRs to access Internet by multiple-hop communications. The end-users serviced by MRs are called mesh clients. They connect to WMNs through base stations built on MRs [1], [2]. In this paper, we consider a scenario shown in Fig. 1 that a multimedia stream delivering system is deployed on a WMN, where multimedia servers are assumed to be attached to the gateway node. In addition, each MR is equipped with a number of network interfaces and omni-directional antennas. The mesh clients may subscribe to a streaming program from the video server and like to receive the subscribed stream at the same time. For example, a large amount of users may subscribe simultaneously for watching the MLB game in live on the 978-1-4244-7640-4/10/$26.00 ©2010 IEEE
Internet. For multimedia applications involved in real-time communications described as above, the multicast technology would be more appropriate than Unicast for efficiently delivering continuous streams to a large amount of mesh clients. Recent works have shown that network throughput can be significantly increased for WMNs with interference-aware multi-radio transmissions [3]–[5]. For two links in interference range, orthogonal channels can be used to achieve full-duplex transmissions without causing any interference. Unfortunately, the number of orthogonal channels is very few. For example, only 3 out of 11 channels in IEEE 802.11b/g technology are orthogonal channels [6]. With this constraint, it is difficult to support multiple concurrent transmissions on a multicast tree, even for the moderate-size multicast trees. In this study, we are concerned about the problem that how to implement a multicast tree supporting concurrent and interference-free transmissions on a multi-radio and multichannel WMN. Our goal is not only to provide high-quality multimedia streams, but also to maximize the number of serviced users managed by each MR on the network. Since the more subscribers can be serviced, the more profits we can make. This problem is also referred as the maximum-revenue multicast routing (M R2 ) problem. In our previous work, only orthogonal channels are allocated to links in multicast trees for the M R2 problem [7]. This limitation is relaxed in this study where all the orthogonal and non-orthogonal channels are considered for channel assignment (CA) for the M R2 problem. This relaxation is based on the study on interference factor presented in paper [12]. Since interference range is greatly affected by the distance between two nodes, it is possible to assign conflict-free non-orthogonal channels to links incident on nodes with distance far enough. Since the channel assignment is a sub-problem of the M R2 problem, M R2 like CA problem is known as a NPcomplete problem [12]. Hence, only heuristic algorithms are investigated. In general, the heuristic algorithms consist of two procedures: a procedure for constructing multicast tree and a procedure for allocating channels. In this paper, we propose two approximation algorithms: the LMCM method and the greedy method, for constructing the multicast trees
онр
for the M R2 problem. Two load-guided channel assignment procedures developed based on DFS and BFS paradigms are also provided to allocate interference-free channels to the multicast trees produced in the previous step. II. R ELATED W ORKS The multicast routing can be implemented on networks with tree-type or grid-type topologies. Most of the proposed multicast routing algorithms are developed based on trees since they have lower implementation cost. For wired networks, multicast trees constructed may be optimized based on different objective functions such as number of hops, delay of the longest path, aggregate cost of tree edges, etc. For the multicast trees determined by the Kou’s approach [16], for example, they are built based on minimizing the total cost of links in the resulting tree. As for the Shortest-Path method [11], the multicast tree is formed by merging all the shortest paths between source node and destinations. These unicast paths with minimal cost are determined by the Dijkstra’s algorithm. However, prior studies [8]–[11] have shown that the multicast trees designed for wired networks may be not suitable for wireless networks. Hence, multicast trees constructed based on minimizing the number of relay nodes or the number of data transmissions have been proposed. They are referred as the Multi-Channel Multicast (MCM) tree [8], [12] and the minimum number of transmission (MNT) tree in [9]. The MCM trees are then handled by a CA algorithm named M4 [13] to assign partially overlapping channels to links to obtain minimum-interference multicast trees. However, the M4 algorithm is not suitable for our M R2 problem since loading status of a node is not considered during the multicast construction phase and CA phase. Hence, the loadbased multicast-tree generation algorithms and load-based CA procedures are developed in the following sections. III. T HE N ETWORK M ODEL AND P ROBLEM F ORMULATION An undirected graph G = (V, E) is used to denote a WMN as shown in Fig. 1, where V represents the node set, and E is a set of undirected edges. A video-stream delivering system is deployed on the gateway node to provide video/audio streams. Each M R node is equipped with at least two network interfaces to support concurrent multi-radio transmissions. All the network interfaces of each M R node is assumed to have the same transmission power. That is, the transmission range R of each node is the same. The omni-directional antennas are also assumed to be used with the network interfaces. Hence, two nodes with overlapping channels may interfere each other if one node is located within a circular interference area with the other node as the origin. Radius of the circular area is defined to be the interference range IR. The problem studied in this paper can be formulated as follows. Given a WMN G = (V, E) with each link associated a delay value and a set of destinations M where M = {u|u ∈ V, req(u) > 0)} and req(u) represents the number of subscribers (end-users) in a M R node, we are ¯ required to find an interference-free multicast tree T = (V¯ , E)
Fig. 1. The deployment of a video-stream delivering system on a wireless mesh network. TABLE I C HANNEL SEPARATION VERSUS INTERFERENCE FACTOR channel separation Interference factor for 11 Mbps
0 2.0
1 1.2
2 0.7
3 0.5
4 0.2
5 0.0
that can concurrently transmit streams to nodes in the M and the maximal path delay is minimized. Although in this study the orthogonal and non-orthogonal channels are used for the multicast tree, the number of available channels is still very limited if tree links which are interfering each other are so many that no orthogonal/non-orthogonal channels can be assigned to them to avoid interference. As a result, there are a certain number of links in the multicast tree can not have any interference-free channels assigned. A multicast tree with links assigned interference-free channels is called M R2 tree in this paper. Obviously, there are many ways to allocate channels to a multicast tree to produce M R2 trees. Therefore, a M R2 tree is a subtree of the multicast tree which includes all the destinations. A M R2 tree that can span all the nodes in M should generate the maximal number of serviced users. In literature [12], the interference factor is defined to be the ratio of the interference range and the transmission range, which are dependent on the transmission rate at the physical layer. For 11 Mbps of IEEE 802.11b, Table I shows the values of the interference factor versus channel separation. The channel separation of two channels c1 and c2 is defined |c2 − c1 |. Based on Table I, the minimal value of channel separation of two nodes are greatly affected by the distance between them. For example, if the distance between two nodes is 1.1R, the value of channel separation must be at least 2 to avoid interference between two nodes. That is, if c1 = 2 is assigned to one node, then c2 can be 4,5,6,...,11, which is eligible for the other node. Based on this observation, all the channels can be allocated to links in the multicast tree to produce the optimal M R2 tree. However, the optimal M R2 tree may not cover all the destinations of the original multicast tree because of the lack of interference-free channels. Let Ψ = {(Ωmr2 , Tmr2 )|Ωmr2 is a set of channel assignments for a M R2 tree Tmr2 }. The goal of this study is to determine an optimal pair of (Ωmr2 , Tmr2 ) so that the following objective function is maximized:
онс
gain = M aximize IV. T HE
u∈M&u∈Tmr2
Input: Given a network G(V, E) and a set of destinations M where M = {u|u ∈ V, req(u) > 0}.
req(u) · · · · · · (A).
HEURISTIC ALGORITHMS
The heuristic algorithms for our M R2 problem can be divided into two steps: the first step is to construct a desired multicast tree; then followed by a procedure which is to assign all the channels to the links of the multicast tree. In this section, two approximation algorithms are proposed for constructing the best multicast trees based on the load value of each node. The load value will be respectively defined for these two algorithms. As for the channel assignment step, two interference-free channel assignment procedures are also developed based on the DFS and BFS paradigms. A. The load-based MCM algorithm In paper [8], a MCM (Multi-Channel Multicast) tree construction algorithm is proposed for building a multicast tree with multi-channel and multi-interface. The first step to construct the MCM tree is to generate a tree mesh using BFS traversal procedure, which can partition all nodes in the given network into different levels. With BFS traversal, the number of hops of each path from the root to a destination is expected to be minimized. The minimal number of relay nodes in the tree mesh is then determined to construct the embedded multicast tree. Based on similar ideas, the MCM algorithm is revised in this subsection by taking into account the number of subscribers of each node during the phase that the relay nodes are determined. This revised MCM algorithm is then named loadbased MCM (LMCM) which is shown in Fig. 2, where line 10 is designed for selecting the best relay node for each iteration executed at line 8. During the formation of the multicast tree, the load value of a node u is defined to be the total subscribers of a subtree rooted at u. And, the node with the largest load value has the highest priority to be selected as the relay node at line 10 in Fig. 2. It is different from the selecting criteria used in the original MCM algorithm [8]. B. The load-based greedy algorithm A greedy approach for constructing the desired multicast tree is developed in this section. This greedy algorithm is carried out by the following two steps: 1) The first step is required to build up a node-weighted ¯ It is an auxiliary graph constructed from network G. an undirected graph G(V, E) that represents the given WMN. This procedure is discussed in subsection C. ¯ the value called ”load” for each node is computed. 2) In G, A modified prim’s procedure is then used to construct a ¯ It begins with the Gateway multicast tree based on G. node set as the root, and then adds one node into the tree at a time based on the load value of each uncovered node. The procedure stops when all the destinations are included in the tree under construction. It is named loadbased prim’s procedure and shown in Fig. 6.
1) Starting from the gateway node, a BFS traversal procedure is used to assign each node a level. A tree mesh is then obtained by deleting all the links between any two nodes which are in the same level; 2) Let V (T ) and E(T ) denote the vertex set and edge set of the resulting multicast tree T . 3) V (T ) = ∅, E(T ) = ∅ ; 4) Let InT [v] = 1 and V (T ) = {v}, if v ∈ M or v is the gateway node; 5) For (l = maxLevel ; l >= 1 ; l = l − 1) { 6) Si ={node vi at level l − 1}; 7) Sj ={node vj at level l and InT [vj ] = 1}; 8) while (Sj = ∅) { 9) Determine Lj ={vk |vk ∈ Sj with the minimal number of 10) parents}; 11) Find tf ∈ Si such that tf with the maximal load where 12) (tf , vk ) ∈ E and vk ∈ Lj ; 13) InT [tf ] = 1, V (T )= V (T ) ∪ {tf }; 14) Si = Si - {tf }; 15) Sj = Sj - {vj |(tf , vj ) ∈ E and vj ∈ Sj }; 16) E(T ) = E(T ) ∪ {(tf , vj )|(tf , vj ) ∈ E and vj ∈ Sj } 17) } 18) } Output: A multicast tree T Fig. 2.
The LMCM algorithm
C. The procedure for generating node-weighted networks ¯ E) is constructed based The node-weighted network G(V, on the procedure shown in Fig. 3. In this procedure, the first step is to determine each node a value called level based on the topological sorting in breath-first fashion. The level value of a node is used to indicate the number of hops away from the root. For each node u with the largest level value, the load value is set to be the req value. A load value of a node u is then recursively defined to be the summation of the number of subscribers of nodes which are downstream nodes of u. In this procedure, a node v is defined to be a downstream node of the node u if v is recursively adjacent to u or neighbors of u, and level(v) > level(u). For the mesh network with level and req values shown in Fig. 4, the load values are computed based on the procedure described in Fig. 3 and are given in Fig. 5. Consider the node g in Fig. 5, its load value is four which is the summation of req values of k, h and g. It is resulted from that level(g) < level(k) and level(g) < level(h) where k and h are neighbor nodes of g. Note that the load values of k and h are equal to their req values respectively, because they are assigned the largest level values based on topological sorting. As for the node f , load(f ) is 2 which is only from the load value of k, since k is a downstream node of f . On the other hand, node e is not a downstream node of f since they are in the same level. D. The DFS-based and BFS-based channel assignment procedures 1) Interference-free channel assignment: Given two distinct links e1 = (u, v) and e2 = (x, y) in a tree supporting
онт
Input: an undirected graph G(V, E) represents the given network, and req(u) is the number of subscribers connected to each mesh router u. 1) A topological sorting procedure is carried out for the network G in breath-first fashion. Starting from the root, each node u ∈ V is assigned a value called level. The value of level(root) is set to be 0. 2) Let maxLevel = max level(u), and load(u) = req(u) u∈V for each node u ∈ V . 3) for ( l = maxLevel ; l ≥ 0 ; l = l − 1 ) { 4) for each node u, if ( level(u) == l ) { 5) for each node v, if ( v is adjacent to u and 6) level(v) < level(u) ) { 7) load(v) = load(v) + load(u); 8) }}} ¯ E). Output: a node-weighted network G(V, Fig. 3.
A node-weighted network generation procedure
Fig. 4.
Fig. 5.
A mesh network example
A node-weighted mesh network
¯ E) and a set of destinaInput: A node-weighted network G(V, tions M where M = {u|u ∈ V, req(u) > 0}. ¯ where V¯ = {Gateway} 1) Let multicast tree T = (V¯ , E), ¯ and E = φ; 2) While (M = ∅){ 3) find a link (u, v) such that load(v) is maximal 4) where u ∈ V¯ and v ∈ V − V¯ ; 5) if(v ∈ M ) M = M − {v}; 6) V¯ = V¯ ∪ {v}; ¯=E ¯ ∪ {link(u, v)}; 7) E 8) } Output: A multicast tree T Fig. 6.
A load-based prim’s procedure
TABLE II M INIMUM DISTANCE VERSUS CHANNEL SEPARATION 0 < δ < 0.2R 0.2R ≤ δ < 0.5R 0.5R ≤ δ < 0.7R 0.7R ≤ δ < 1.2R 1.2R ≤ δ < 2R 2R ≤ δ
η η η η η η
≥5 ≥4 ≥3 ≥2 ≥1 ≥0
concurrent transmissions, the interference range is determined by the minimum distance δ between any two nodes from different links. Based on the δ value and interference factor defined in Table I shown in section III, three situations for supporting interference-free channel assignments for e1 and e2 are considered as follows. Let η denote the separation for channels assigned to e1 and e2 and R is the transmission range. (a) δ = 0 and u = x, e1 and e2 are sibling links and they may share the same channel based on WBA, so η ≥ 0. (b) δ = 0 and (v = x or u = y), e1 and e2 have one end-node in common, so η ≥ 5. (c) δ > 0, several cases are considered in the Table II. 2) The load-based DFS channel assignment: Based on the DFS traversal and the discussion presented in section IV-D1, non-orthogonal channels can be allocated to the given multicast tree T in such a way that no interference occurs between any two links in T . This interference-free channel assignment procedure is shown in Fig. 7. Since our goal is to find a M R2 tree with the largest gain value in equation (A), a link lead to a node with larger load value should have higher priority to be allocated a channel. Hence, at line 5 in Fig. 7, the sibling links are sorted based on load values stored at endpoints of these links. At line 6, the sorted links are then allocated channels in sequence. For a new link ei processed at line 7, a common channel allocated to its sibling links may be considered first. This step is to exploit the wireless broadcast advantage (WBA) [13]. If it fails, an interference-free channel is searched for ei at line 11. The link ei is removed if no such channel can be found. The depth-first search is recursively executed at line 9 and 13. 3) The load-based BFS channel assignment: The procedure of load-based BFS channel assignment is similar to the loadbased DFS procedure. However, for multicast trees with large height, the interference-free channels may be used up before the links connected to destinations have a chance to be allocated a channel, since the nodes are visited in breadth-first order in load-based BFS procedure. Therefore, load-based BFS procedure is more suitable for the wide-and-short multicast trees. V. T HE EXPERIMENTAL RESULTS A number of experiments are designed in this section to do the performance and delay comparisons for the M R2 trees, which are generated by applying the load-based DFS channel assignment procedure to the multicast trees constructed by the load-based MCM, the load-based greedy and the shortestpath algorithms. The first two algorithms are described in
оой
¯ and a set of channels Φ. Input: A multicast tree T = (V¯ , E) 1) Recursively compute the load(u) value of each node u in bottom up fashion; 2) Compute the interference matrix IM for all the links in T ; In IM , the distance between any two links and the corresponding interference factor are determined; 3) The channel assignment is started at the root and recursively carried out in DFS fashion; 4) Load based DFS(u) { 5) For node u, set L = {(u, v1 ), ..., (u, vk )} be the set of directed links started from u, where (u, vi ) ∈ T , 1 ≤ i ≤ k and load(v1 ) ≥ ... ≥ load(vk ); 6) For(i = 1 ; i ≤ k ; i + +) { 7) check if (u, vi ) can share the channel ch assigned to a sibling link (u, vj ) without causing any interference, where 1 ≤ j ≤ i − 1; 8) If it is yes, then{ 9) channel[(u, vi)]=ch ; Load based DFS(vi );} 10) else{ 11) try to find an interference-free channel ck ∈ Φ for (u, vi ); 12) If it is successful, then{ 13) channel[(u, vi)]=ck ; Load based DFS(vi );} ¯ = E¯ − (u, vi );} 14) else{E 15) }}} Output: A M R2 tree Tmr2 Fig. 7.
Fig. 8.
Performance comparisons for 100-node networks
Fig. 9.
Performance comparisons for 50-node networks
A load-based DFS channel assignment procedure
section IV-A and IV-B. As for the shortest-path algorithm, it constructs the multicast tree by merging all the shortest paths from the gateway node to all the destinations. Each shortest path is determined by the Dijkstra’s algorithm. The multicast trees found by these algorithms are processed by the same load-based DFS channel assignment procedure to produce the desired M R2 trees. Each data presented here is taken on the average of 100 runs on 100-node, 50-node and 30-node random networks generated on a 1250 x 1250 grid, where transmission range R is set to be 250 units on the grid and the interference range is set to be 2R for two links allocated with the same frequency channels. The number of destinations is set to be 10%, 20%, 30% and 50% of total nodes and 1 ∼ 5 subscribers are randomly assigned to each destination. The delay of each link is randomly set to be a value between 1 and 3. The other simulation parameters are set as follows: 2 interfaces with omni-directional antennas equipped for each node, 11 channels available for IEEE 802.11b/g technology. All the programs are written in C++ and can be efficiently executed on laptop computers.
is the number of total subscribers initially assigned to the given networks. Note that Γ is an upper bound for the optimal value. Since the M R2 is a NP-complete problem, only optimal values of very small-size networks can be found. Therefore, we use Γ to substitute for the optimal value to do performance comparisons for tested algorithms. According to the results shown in Fig. 8, 9 and 10, the performance ratio Θ of LMCM method is consistently superior to the other two methods for various destination ratios in different sizes of networks. B. Delay comparisons vs network sizes For real-time applications deployed on the multicast tree, the delay time of destinations may greatly affect the quality
A. Performance comparisons vs network sizes For measuring the performances of three tested algorithms, a metric term ”performance ratio” Θ is defined as follows: Θ= gain / Γ * 100% · · · · · · (B), where gain is defined in equation (A) in section III, and Γ
оок
Fig. 10.
Performance comparisons for 30-node networks
Fig. 11.
Delay comparisons for 100-node networks
Fig. 13.
Delay comparisons for 30-node networks
choice if both performance and delay must be considered simultaneously for some real-time applications. VII. ACKNOWLEDGMENTS This work was supported by the National Science Council, R.O.C. (NSC-98-2221-E-024-004-MY2). R EFERENCES
Fig. 12.
Delay comparisons for 50-node networks
of multimedia streams received. Hence, the algorithms which can build a multicast tree with small delay would be preferred. The delay of a multicast tree is determined by the maximum delay of the paths from the root to destinations. According to the results shown in Fig. 11, 12 and 13, the average delay of M R2 trees produced by the shortestpath algorithm is the smallest for various destination ratios in different sizes of networks. Whereas, the average delay produced by the LMCM algorithm is the largest, since the M R2 tree found by LMCM is larger than that found by the other two methods. As for the load-based greedy algorithm, the average delay produced by it is consistently better than the LMCM method for all various sizes of networks. Hence, the greedy method would be better choice if both performance and delay must be considered at the same time for some real-time applications implemented on large-size networks. VI. C ONCLUSIONS A M R2 problem concerning the delivery of real-time streams on multicast trees embedded in WMNs is proposed in this paper. Based on the concept of interference factor, we can successfully assign non-orthogonal channels to links of multicast trees to maximize the number of serviced subscribes. Two multicast-tree construction algorithms and two channel assignment procedures are developed in this study. Based on the experimental results, the LMCM algorithm outperforms the other methods in terms of the number of serviced subscribers. Whereas, the load-based greedy heuristic would be better
оол
[1] I.F. Akyildiz, X. Wang, and W. Wang, ”Wireless mesh networks: a survey,” Computer Networks, vol. 47, 2005, pp. 445-487. [2] Ashish Raniwala and Tzi-cker Chiueh, ”Architecture and Algorithms for an IEEE 802.11-based Multi-Channel Wireless Mesh Network,” IEEE INFOCOM, pp. 2223- 2234, 2005. [3] A.P. Subramanian, H. Gupta, S.R. Das and J. Cao, ”Minimum Interference Channel Assignment in Multiradio Wireless Mesh Networks,” IEEE Trans. on Mobile Computing, vol. 7, no. 12, 2008, pp. 14591473. [4] B. Raman, ”Channel Allocation in 802.11-based Mesh Networks,” INFOCOM 2006. [5] M.K. Marina and S.R. Das,”A Topology Approach for Utilizing Multiple Channels in Multi-Radio Wireless Mesh Networks,” BroadNets 2005, pp. 381-390. [6] R. Draves, J. Padhye and B. Zill, ”Routing in Multi-Radio, Multi-Hop Wireless Mesh Networks,” MobiCom 2004, pp. 114-128. [7] Wen-Lin Yang, ”A Maximum-Revenue Multicast Routing Problem on Wireless Mesh Networks,” The 24th International Conference on Information Networking 2010(ICOIN 2010). [8] G. Zeng, B. Wang, Y. Ding, L. Xiao and M. Mutka, ”Multicast Algorithms for Multi-Channel Wireless Mesh Networks,” IEEE ICNP, 2007, pp. 1-10. [9] P.M. Ruiz and A.F. Gomez-Skarmeta, ”Approximating Optimal Multicast Trees in Wireless Multihop Networks,” ISSC 2005, pp. 686-691. [10] A. Kumar K.S. and S. Hegde, ”Multicasting in Wireless Mesh Networks: Challenges and Opportunities,” International Conference on Information Management and Engineering, 2009, pp.514-518. [11] U.T. Nguyen and J. Xu, ”Multicast Routing in Wireless Mesh Networks: Minimum Cost Trees or Shortest Path Trees,” IEEE Communications Magazine, 2007, pp. 72-75. [12] H.L. Nguyen and U.T. Nguyen, ”Minimum Interference Channel Assignment for Multicast in Multi-Radio Wireless Mesh Networks,” IWCMC’08, 2008, pp. 626-631. [13] U.T. Nguyen, ”On multicast routing in wireless mesh networks,” Computer Communications, vol.31, 2008, pp. 1385-1399. [14] Z. Yin, Z. Li and M. Chen, ”A Novel Assignment Algorithm for Multicast in Multi-radio Wireless Mesh Networks,” IEEE ISCC, 2007, pp. 283-288. [15] M. Alicherry, R. Bhatia and L. Li, ”Joint Channel Assignment and Routing for Throughput Optimization in Multi-radio Wireless Mesh Networks”, IEEE J-SAC, vol.24(11), 2006, pp. 1960-1971. [16] L. Kou, G. Markowsky and L. Berman, ”A Fast Algorithm for Steiner Trees,” Acta Infomatica, Spring-Verlag, vol.15, pp. 141-145, 1981.