APPARATUS AND METHODS FOR CHANNEL ALLOCATION

Abstract: This invention discloses a method for utilization of a first plurality of channels by a second plurality of transmitters, the method includes the steps of defining a third plurality of transmitter subsets such that at least one of the second plurality of transmitters is included in each transmitter subset; assigning at least one channel from among the first plurality of channels to each transmitter subset, to be shared among the transmitters in that transmitter subset, such that less than all of the first plurality of channels are assigned to the third plurality of transmitter subsets, thereby defining a reservoir of channels which have not been assigned to any transmitter subset, and sharing the channels in the reservoir of channels between all of the second plurality of transmitters. A system for utilization of a first plurality of channels by a second plurality of transmitters is also disclosed.

Description: APPARATUS AND METHODS FOR CHANNEL ALLOCATION FIELD OF THE INVENTION The present invention relates to apparatus and methods for channel allocation. BACKGROUND OF THE INVENTION State of the art methods for channel allocations are described in the following documents: "Resource allocation in wireless networks", Scott Jordan, JHSN, 10 January 1995. Duque-Anton et al, "Static and dynamic channel assignment using simulated annealing", Chapter 10 in Neural networks in telecommunications, Ben Yuhas and Nirwan Ansari (Ed.), Kluwer Academic Publishers, Boston, 1994. "Prioritized channel borrowing without locking: A channel sharing strategy for cellular communications", H. Jiang and S. S. Rappaport, IEEE/ ACM Transactions on Networking, Vol. 4, No. 2, April 1996. The disclosures of all publications mentioned in the specification and of the publications cited therein are hereby incoφorated by reference. SUMMARY OF THE INVENTION The present invention seeks to provide improved apparatus and methods for channel allocation. There is thus provided, in accordance with a preferred embodiment ofthe present invention, a method for utilization of a first plurality of channels by a second plurality of transmitters, the method including defining a third plurality of transmitter subsets such that at least one of the second plurality of transmitters is included in each transmitter subset, and assigning at least one channel from among the first plurality of channels to each transmitter subset, to be shared among the transmitters in that transmitter subset, such that less than all ofthe first plurality of channels are assigned to the third plurality of transmitter subsets, thereby defining a reservoir of channels which have not been assigned to any transmitter subset, and sharing the channels in the reservoir of channels between all ofthe second plurality of transmitters. Further in accordance with a preferred embodiment of the present invention, a first transmitter is entitled to use a channel in the reservoir even if the channel is being used by a second transmitter, if there is no neighbor-clique which includes both the first and the second transmitters, wherein a neighbor-clique of an individual transmitter subset includes all transmitter subsets which share at least one common transmitter with the individual transmitter subset. Also provided, in accordance with another preferred embodiment of the present invention, is a method by which an individual transmitter transmits, in a situation in which a first plurality of channels is serving a second plurality of transmitters including the individual transmitter, the method including transmitting over a first channel from among the first plurality of channels if the transmitter belongs to a subset of transmitters which is served by the first channel and if the first channel is available, and otherwise, if a reservoir of channels includes an available second channel, transmitting over the second channel, wherein the reservoir includes all channels from among the first plurality of channels which do not serve any subset of transmitters. Further in accordance with a preferred embodiment of the present invention, the channels are separated by their transmission frequency. Still further in accordance with a preferred embodiment of the present invention, the channels are separated by their transmission code. Additionally in accordance with a preferred embodiment of the present invention, the channels include CDMA (code division multiple access) channels. Further in accordance with a preferred embodiment of the present invention, at least some ofthe channels include wireless channels. Still further in accordance with a preferred embodiment of the present invention, the subset defining step also includes selecting, for each subset, from among the transmitters in the subset, a subset master to which channel allocation requests are addressed over a control channel. Further in accordance with a preferred embodiment of the present invention, the subset master is selected so as to maximize utilization of the control channel for communication of transmitters in the subset with transmitters in other subsets to which the subset master belongs. Still further in accordance with a preferred embodiment of the present invention, the transmitter in the subset which belongs to the largest number of other subsets is selected as subset master. Further in accordance with a preferred embodiment of the present invention, the method also includes releasing a dropout transmitter by disconnecting the dropout from the subsets to which the dropout belongs including informing only the masters of each ofthe subsets that the dropout has been disconnected. Also provided, in accordance with another preferred embodiment of the present invention, is a system for utilization of a first plurality of channels by a second plurality of transmitters, the system including a channel assigner operative to assign at least one channel from among the first plurality of channels to each of a third plurality of transmitter subsets, each including at least one ofthe second plurality of transmitters, the channel to be shared among the transmitters in that transmitter subset, such that less than all ofthe first plurality of channels are assigned to the third plurality of transmitter subsets, thereby defining a reservoir of channels which have not been assigned to any transmitter subset, and a channel sharer operative to share the channels in the reservoir of channels between all ofthe second plurality of transmitters. A particular advantage of the method of the present invention is that typically, the method is NP-complete. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be understood and appreciated from the following detailed description, taken in conjunction with the drawings in which: Fig. 1 is a simplified functional block diagram of a channel allocation system, constructed and operative in accordance with a preferred embodiment of the present invention, which allocates channels to a plurality of transmitters distributed in space; Fig. 2 shows a plurality of transmitters distributed in Euclidian space, among obstacles, such as walls, which are also distributed in space; Fig. 3 shows the same plurality of transmitters distributed in non-Euclidian space; Fig. 4 is an illustration of several subsets of transmitters; Fig. 5 shows a graph representing relationships between subsets I to VI of Fig. 3; Fig. 6 illustrates results of a subset graph coloring process; Figs. 7A - 7F illustrate neighbor-cliques for each of subsets I - VI; Fig. 8 is a table summarizing the relationships between the subsets and the neighbor-cliques in the example of Figs. 2 - 7F; Fig. 9 is a table indicating which channels belong to each local reservoir before assignment of channels to subsets; Fig. 10 is a table indicating which channels belong to each local reservoir after channels A and B have been assigned to the subsets I - VI; Fig. I IA is a table indicating which channels belong to each local reservoir after a borrowing process shown in Fig. 1 IB has occurred; Fig. 1 IB illustrates a borrowing process whereby transmitter #1 borrows channel C from its local reservoir; Fig. 12A is a table indicating which channels belong to each local reservoir after a borrowing process shown in Fig. 12B has occurred; Fig. 12B illustrates a borrowing process whereby transmitter #21 borrows channel D from its local reservoir; Fig. 13A is a table indicating which channels belong to each local reservoir after a borrowing process shown in Fig. 13B has occurred; Fig. 13B illustrates a borrowing process whereby transmitter #15 borrows channel C from its local reservoir; Fig. 14A is a table indicating which channels belong to each local reservoir after a borrowing process shown in Fig. 14B has occurred; Fig. 14B illustrates a borrowing process whereby transmitter #17 borrows channel D from its local reservoir; Fig. 15A is a table indicating which channels belong to each local reservoir after a borrowing process shown in Fig. 15B has occurred; Fig. 15B illustrates a borrowing process whereby transmitters #1, #15, #17 and #21 have each returned the channels they were using and transmitter #4 has borrowed channel C from its local reservoir; Fig. 16A is a table indicating which channels belong to each local reservoir after a borrowing process shown in Fig. 16B has occurred; Fig. 16B illustrates a borrowing process whereby transmitter #8 has borrowed a channel from its local reservoir (transmitter #4 has not yet returned its channel; Fig. 17A is a table indicating which channels belong to each local reservoir after a borrowing process shown in Fig. 17B has occurred; Fig. 17B illustrates a borrowing process whereby transmitters #7 and #9 each borrow a channel from their respective local reservoirs; Fig. 18A depicts time series of transmitters #1 - #10, over a relatively high channel-request-intensity time period of 500 msec. As shown, each transmitter can either be in an "up" state or in a "down" state. The "up" state represents idleness (i.e. no channel required) whereas the "down" state represents a requirement for a channel; Fig. 18B is a "zoom" onto a 100 msec time period within the time period of Fig. 18A; Fig. 19A depicts time series of transmitters #1 - #10, over a relatively low channel-request-intensity time period of 500 msec. As shown, each transmitter can either be in an "up" state or in a "down" state. The "up" state represents idleness (i.e. no channel required) whereas the "down" state represents a requirement for a channel, Fig. 19B is a "zoom" onto a 100 msec time period within the time period of Fig. 19A; Fig. 20 is a simplified flowchart illustration of a preferred method of operation for the connectivity matrix generator of Fig. 1; Fig. 21 is a simplified flowchart illustration of a preferred method of operation for the transmitter subset generator of Fig. 1; Fig. 22 is a simplified flowchart illustration of a preferred method of operation for the subset graph construction unit of Fig. 1; Fig. 23 is a simplified flowchart illustration of a preferred method of operation for the subset graph coloring unit of Fig. 1; Fig. 24 is a table showing input format suitable for either Appendix A or Appendix B; Fig. 25 is a simplified flowchart illustration of a preferred method of operation for the local reservoir management unit of Fig. 1; Fig. 26 is a simplified flowchart illustration of a preferred method for performing the minimal cost channel computation step 870 in Fig. 25; Figs. 27A - 27B are spectral intensity diagrams of two transmitters, the diagrams forming an illustrative definition of the terms "central channel", "adjacent channel" and "alternate channel"; Fig. 28 is a schematic illustration of a transmitter which is shown communicating with other network elements in three different ways; Fig. 29 is a schematic illustration showing two transmitters in the same subset, communicating simultaneously; Fig. 30 is a diagram of a step-by-step process for subset generation; and Fig. 31 is an illustration of chromatic coloring performed over a subset graph. Fig. 32 is an illustration of an undirected subset graph with a given edge length. Fig. 33 is an illustration of data flow within a basic cell structure. Attached herewith are the following appendices which aid in the understanding and appreciation of one preferred embodiment of the invention shown and described herein: Appendices A and B are alternative embodiments, implemented in software, of the present invention, which receive a transmitter connectivity matrix as input, and perform the following functions: transmitter subset generation, subset graph construction, and neighbor clique computation. Appendix C is a software listing of a preferred technique for providing a supervised optimization cycle ofthe method of Appendix A or Appendix B; Appendix D is an initialization file for Appendices A or B; Appendix E is an example of an output file generated by running Appendices A or B on an ASCII file containing the data of Fig. 24; and Appendix F is a software listing of a Matlab procedure performing the functions of units 60 and 70 of Fig. 1. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. Fig. 1 is a simplified functional block diagram of a channel allocation system, constructed and operative in accordance with a preferred embodiment of the present invention, which allocates channels to a first plurality of transmitters distributed in space. Typically, the transmitters serve as access points for a larger population of workstations (not shown). The term "channel" is intended to include any means or agency or path or line of access along which signals or data or information may be sent, including but not limited to wired channels such as TV cable and long distance underground cable; wireless channels such as radio channels, optical fiber and satellite; and any combination ofthe above. The term "connectivity" is defined as mutual sensitivity between any two or more transmitters. The system of Fig. 1 includes a connectivity matrix generator 10 operative to generate a matrix whose elements represent levels of connectivity between each pair of transmitters within the first plurality of transmitters. A transmitter subset generator 20 is operative to generate a second plurality of subsets, each subset including some of the transmitters. The transmitters in each subset typically share at least one channel which no-one outside the subset is entitled to use, except for transmitters outside the subset which can re-use the channel without substantially interfering with the transmitters in the subset. The transmitters within a subset can communicate with one another, e.g. when an "ordinary" transmitter asks the subset's master transmitter for a channel, by any suitable wired or wireless means. Typically, one of the subset's channels may serve for communication within the subset. This channel is termed the subset's "control channel". It is appreciated that the transmitters in each subset may make any suitable use of the channel or channels shared by them. The channel or channels may be used solely or partly (e.g. by a time-sharing scheme) for some or all of the following functions of which (a) and (b) are control functions and (c) is a normal use function: a. Allowing a particular transmitter in the subset to request a channel for itself from the main reservoir, as described in detail below. For example, a transmitter may use channel B in order to request a channel for itself and in response may receive channel C from the main reservoir. It is appreciated that, alternatively, requests from a transmitter to the main reservoir to allocate a channel to that transmitter may be transmitted over a special channel which is used for no other purpose, i.e. is not one of the channels in the main reservoir. The special channel may even be over a different medium than the channels in the main reservoir. b. Allowing a workstation served by the subset to request access to a transmitter . For example, a workstation may use channel B in order to announce its "desire" to send data or be served by the Internet. In response, one of the transmitters (e.g. transmitter No. 3) may use a special channel to request, from the main reservoir, a channel for itself. In response, the main reservoir may allocate channel C to transmitter No. 3 and the workstation may then send data to transmitter No. 3 via channel C. Alternatively, the request from transmitter No. 3 to the main reservoir may be transmitted over channel B, if a suitable time-sharing scheme is employed for channel B. c. Allowing a particular transmitter to transmit data, typically in order to serve a particular workstation. Any suitable protocol may be employed to govern communication between workstations and transmitters such as, for example, TDMA (time division multiple access); ring protocols such as Token Ring; ALOHA; PPMA (pre-emptive polling multiple access); GRAP (group random access polling); CSMA (carrier sense multiple access) such as CSMA-CD (CSMA-collision detection); and CDMA (code division multiple access). Any suitable protocol may be employed to govern communication between transmitters within a subset, and communication between transmitters between subsets, such as, for example, any of the above protocols or any suitable combination thereof. The process implemented in Appendix A is preferably performed before the operational stage is active. Referring back to Fig. 1, a subset graph construction unit 30 is operative to construct a graph to represent connectivity of the subsets, where subsets are considered connected if their respective closest member transmitters are relatively close to one another. A neighbor clique computation unit 34 is operative to compute the set of all neighbor cliques in the subset graph constructed by unit 30. A preferred method of operation for unit 34, including an example of suitable source code, is described in pages 59 - 69 of Lau, H. T., Algorithms on Graphs. TAB Professional and Reference Books, Blue Ridge Summit, PA, USA, 1989. A graph coloring unit 40 is operative to assign channels to the subsets by coloring the subset graph generated by unit 30, the color of each subset (node) representing a channel assigned thereto. Channel assignment by graph coloring allows a minimal number of channels to be used, while ensuring that use of a channel by each subset does not substantially interfere with the transmitters in any other subset. A functional block diagram of a preferred embodiment of graph coloring unit 40 is illustrated in Fig. 23. A preferred embodiment of a graph coloring unit, including an example of suitable source code, is described in Chapter 4 of Lau, H. T., Algorithms on Graphs, TAB Professional and Reference Books, Blue Ridge Summit, PA, USA, 1989. Algorithms on Graphs also provides code for performing subset graph coloring. A reservoir manager 50 is operative to manage a main reservoir including all channels which have not been assigned to specific subsets. The reservoir manager 50 is a functional unit which, in practice, is typically performed by individual transmitters. The individual transmitters performing the reservoir management function may be predetermined but preferably, they are elected. In the illustrated embodiment, a subset master assignment subunit 60 is operative to assign or elect transmitters to perform the reservoir management function, typically one master transmitter per subset. Preferably, all of the master transmitters are of equal status and there is no "master-master transmitter". In certain applications, however, it may be desirable to assign or predetermine a "master- master transmitter", which may or may not comprise one ofthe master transmitters. Typically, the master transmitter of each subset is selected as the transmitter in the subset which belongs to the largest number of other subsets, i.e. the transmitter having the largest neighbor clique. It is appreciated that if the master transmitter of a subset A is also a member of a subset B then preferably, the transmitters within subset A can utilize subset A's control channel in order to transmit messages to members of subset B, via subset A's control channel, the master transmitter, and the control channel of subset B. This is typically the case even if the master of subset A is not the master of subset B. Preferably, this utilization is only permitted if the control channel is idle, i.e. requesting channels from the master subset takes precedence over general communication with other subsets via the master subset. A particular advantage of selecting as subset master, the transmitter with the largest neighbor clique is that generally, this selection maximizes the connectivity between subsets by maximizing utilization of the control channel with consequent efficient use ofthe non-control channels allocated to that subset. Each manager transmitter, serving a particular subset, includes a local reservoir management unit 70, which is a functional unit operative to manage the main reservoir from the point of view of that subset. The main reservoir, as managed by a particular subset manager on behalf of a particular subset, is also termed herein the "local reservoir" of that subset, as described in detail below. It is appreciated that the subset manager itself typically sometimes requires a channel and in this case, typically, the subset manager requests a channel from itself similarly to the way other transmitters in the subset request a channel from the manager. The term "assign" is used to refer to the process of providing a subset with a channel which "belongs" to that subset and is not merely "borrowed" by the subset. The term "allocate" is used to refer to the process of "loaning" a channel to an individual transmitter from the main reservoir. Fig. 2 shows a plurality of transmitters 110 distributed in Euclidian space, among obstacles 120, such as walls, which are also distributed in space. Fig. 3 shows the same plurality of transmitters distributed in non-Euclidian space. It is appreciated that the metric used to define distances between transmitters is typically a non-Euclidian metric. For example, if a non-Euclidian space such as a Labochevsky or Minkowski metric is employed, the distance between transmitters is proportional to the signal strength propagation (typically measured in electromagnetic dB) existing between those transmitters. The Minkowski metric is described in Space Time Motion. Moyseyev, R., Chapter 2 , Dover Books, 1942. Uses ofthe Minkowski metric are described in P. G. Bergmann, Introduction to the Theory of Relativity. Dover, Prentice-Hall, 1942. A suitable Minkowski metric for the illustrated embodiment of the present invention is described in the following website of the Department of Physics at Virginia State University: http ://astsun. astro . Virginia, edu/~eww6n/math/MinkowskiSpace. html . The plurality of transmitters is typically such that there is substantially no cross-talk i.e. the distance between each transmitter and itself is infinite which, under the Labochevsky metric is equivalent to a zero distance. It is appreciated that the transmitters of Fig. 3 may be regarded as a complete graph wherein each transmitter is a node and the weight of the edge connecting each two nodes is the distance between them. The distance may, for example, be a Labochevsky metric distance, expressed in dB. If two transmitters are positioned such that they cannot receive from one another, the distance between them is typically considered infinity. Transmitter subsets are now defined such that at least one of the 21 transmitters (in the present example) is included in each transmitter subset and, preferably, each transmitter is included in at least one subset. Fig. 4 shows 6 subsets, each including 5 or 6 transmitters although it is appreciated that more generally, any number of transmitters, including only one transmitter, may be included in a particular subset. To generate the subsets of Fig. 4, the following criteria may be employed: a. There is a predetermined maximum number of transmitters per subset and a predetermined minimum number of transmitters per subset. For example, the rule may be that each subset must include between 5 and 6 transmitters, as in Fig. 4. b. For each transmitter, there is a maximum number of subsets to which that transmitter is entitled to belong. In the illustrated example, each transmitter is entitled to belong to only up to 2 subsets. However, more generally, some transmitters may be entitled to belong to only, say, 3 subsets, whereas another transmitter may be entitled to belong to, for example, only one subset. In order for a transmitter to belong to n subsets, the transmitter typically has the ability to operate in n different channels simultaneously, e.g. typically includes n separate and independent transmitter units e.g. n different radios. For example, in order for a radio transmitter to belong to 2 subsets, the radio transmitter typically includes two separate and independent radio units. This is one reason for establishing a maximum number of subsets to which each transmitter is entitled to belong. However, in some applications, it is desirable for the maximum number of subsets for a particular transmitter, to be less than the number of channels through which that transmitter is capable of transmitting. c. The number of transmitters which belong to only a single subset should be minimized. d. The number of subsets which are connected should be minimized. Two subsets are "connected" if the distance between them is below a predetermined connectivity threshold such as, in the illustrated example, -91 dB. The "distance" between two subsets with no common members is defined as the minimum distance between any transmitter in the first subset and any transmitter in the second subset. The distance between subsets having a common member is zero and therefore, subsets having a common member are always considered connected. e. The number of neighbor-cliques to which each subset belongs, should be minimized. Each subset S has a "neighbor-clique" which includes all subsets which are connected to S. Therefore, the number of neighbor-cliques to which each subset S belongs is equal to the number of subsets which are connected to S. Any suitable technique may be employed to generate subsets which answer to the above criteria (a) to (e), such as techniques based on combinatorial algebra or neural networks or artificial life methods or Monte Carlo methods. Publications describing artificial life methods include: D. Whitley, "An executable model of a simple genetic algorithm", in Foundations of genetic algorithms - 2, L. D. Whitley (Ed.), Morgan Kaufmann, San Mateo, CA, USA. M. D. Vose, "Modelling simple genetic algorithms", in Foundations of genetic algorithms - 2. L. D. Whitley (Ed.), Morgan Kaufmann, San Mateo, CA, USA. Next, a graph is generated to represent relationships between the subsets. Typically, each node in the graph represents a subset and a pair of nodes is adjacent (i.e. there is an edge between them) if the corresponding subsets are connected. Fig. 5 shows a graph representing relationships between subsets I to VI of Fig. 3. The available channels are color-coded and the nodes (subsets) in the graph are now colored, using a minimum number of colors. In other words, the color of a node identifies a channel belonging to the subset corresponding to that node. It is appreciated that if more than one channels has been assigned to a particular subset, that subset's node will have more than one color (i.e. the length of the color vector of that node will be more than one). Any suitable method may be used to color the channels such as chromatic coloring, described in Chapter 4 of H. T. Lau, Algorithms on graphs. TAB Professional and Reference Books, Blue Ridge Summit, PA, USA. The channels which are not assigned to any subset are regarded as belonging to a main reservoir which is used commonly by all the transmitters in all the subsets. As described in more detail below, channels in the main reservoir can sometimes be used simultaneously by more than one transmitter. This situation is termed herein "channel reuse". Channel re-use is typically facilitated by deriving local reservoirs from the main reservoir. One local reservoir is typically derived for each transmitter subset. The channels within a local reservoir at a given time t are always a subset of the channels included in the main reservoir at time t. A channel is included simultaneously in two local reservoirs I and II iff that channel can be used simultaneously by any transmitter in the transmitter subset I corresponding to reservoir I and by any of the transmitters in the transmitter subset II corresponding to reservoir II. More generally, a channel is included simultaneously in n local reservoirs iff that channel can be used simultaneously by one member each of the n transmitter subsets of the n reservoirs respectively without substantial interference. Typically, two transmitters are considered to be operating "without substantial interference" if the value of a predetermined cost function of the transmission quality between the two transmitters is below a threshold value. For example, the cost function may comprise the BER (bit error rate) of the channel between two transmitters. Initially, each ofthe local reservoirs includes all ofthe transmitters in the main reservoir. However, it is appreciated that subsequently, the local reservoirs each shrink and expand back again differently, depending on each subset's relationship with other subsets and depending on the extent to which each subset needs channels. An example of the development of 6 local reservoirs from a main reservoir serving 6 subsets of transmitters is now described, based on the example of Figs. 2 - 6. Figs. 7A - 7F illustrate neighbor-cliques 200, 210, 220, 230, 240 and 250 for each ofthe subsets I - VI respectively. These cliques are defined by neighbor clique computation unit 34 of Fig. 1. Each clique is identified by a dotted line surrounding all of its members. Fig. 8 is a table summarizing the relationships between the subsets and the neighbor-cliques in the example of Figs. 2 - 7F. "x" indicates connectivity between two subsets. Fig. 9 is a table indicating which channels belong to each local reservoir before assignment of channels to subsets as shown in Fig. 6. As illustrated, each of the local reservoirs includes all of the channels A - G and therefore, of course, the main reservoir also includes all ofthe channels A - G. Fig. 10 is a table indicating which channels belong to each local reservoir after channels A and B have been assigned to the subsets I - VI as shown in Fig. 6. As illustrated, each ofthe local reservoirs now includes only channels C - G and therefore, of course, the main reservoir also includes only channels C - G. It is appreciated that at this stage, all six local reservoirs are identical. Fig. I IA is a table indicating which channels belong to each local reservoir after transmitter #1 has borrowed channel C from its local reservoir, as shown in Fig. 1 IB. Since transmitter #1 (cross-hatched) belongs to subset II, as shown in Fig. 1 IB, and since subset II is connected to only one other subset (subset I), channel C is removed only from the local reservoirs of subsets I and II and remains present in all other local reservoirs, i.e. the local reservoirs of subsets III - VI. Fig. 12A is a table indicating which channels belong to each local reservoir after (as shown in Fig. 12B) transmitter #21 has borrowed channel D from its local reservoir, and before channel C has been returned by transmitter #1. Since transmitter #21 also belongs to subset II, as shown in Fig. 12B and since subset II is connected to only one other subset (subset I), channel D, like channel C, is also removed only from the local reservoirs of subsets I and II and remains present in all other local reservoirs, i.e. the local reservoirs of subsets HI - VI. Fig. 13 A is a table indicating which channels belong to each local reservoir after (as shown in Fig. 13B) transmitter #15 has borrowed channel C from its local reservoir, even though channel C has not been returned by transmitter #1. This is possible because transmitters #1 and #15 belong to subsets II and VI respectively, which are not connected. Since transmitter #15 belongs to subset VI, as shown in Fig. 13B and since subset VI is connected to only one other subset (subset IV), channel C is removed from the local reservoirs of subsets VI and IV and remains present in the local reservoirs of subsets III and V. Fig. 14A is a table indicating which channels belong to each local reservoir after (as shown in Fig. 14B) transmitter #17 has borrowed channel D from its local reservoir. This is possible, even though channel D is being used by transmitter #21 because the subsets VI and II to which transmitters #17 and #21 belong are not connected. Since transmitter #17 belongs to subset VI, as shown in Fig. 14B and since subset VI is connected to only one other subset (subset IV), channel D is removed only from the local reservoirs of subsets IV and VI and remains present in the local reservoirs of subsets III and V. Fig. 15A is a table indicating which channels belong to each local reservoir after (as shown in Fig. 15B) transmitters #1, #15, #17 and #21 have each returned the channels they were using and transmitter #4 has borrowed channel C from its local reservoir. Transmitter #4 belongs to subsets I and III, as shown in Fig. 15B. Since subset I is connected to subsets II, III and IV and subset III is connected to subsets I and V, channel C is removed from the local reservoirs of subsets I - V and remains present only in the local reservoir of subset VI. Fig. 16A is a table indicating which channels belong to each local reservoir after (as shown in Fig. 16B), transmitter #8 has borrowed a channel from its local reservoir (transmitter #4 has not yet returned its channel). Fig. 17A is a table indicating which channels belong to each local reservoir after (as shown in Fig. 17B), transmitters #7 and #9 each borrowed a channel from their respective local reservoirs (transmitters #4 and #8 have not yet returned their channels). Fig. 18A depicts time series of transmitters #1 - #10, over a relatively high channel-request-intensity time period of 500 msec. As shown, each transmitter can either be in an "up" state or in a "down" state. The "up" state represents idleness (i.e. no channel required) whereas the "down" state represents a requirement for a channel. Fig. 18B is a "zoom" onto a 100 msec time period within the time period of Fig. 18 A. Fig. 19A depicts time series of transmitters #1 - #10, over a relatively low channel-request-intensity time period of 500 msec. As shown, each transmitter can either be in an "up" state or in a "down" state. The "up" state represents idleness (i.e. no channel required) whereas the "down" state represents a requirement for a channel. Fig. 19B is a "zoom" onto a 100 msec time period within the time period of Fig. 19A. Fig. 20 is a simplified flowchart illustration of a preferred method of operation for the connectivity matrix generator 10 of Fig. 1. The input to the method of Fig. 20 is an indication of the locations of the transmitters in space, e.g. using a conventional Euclidian metric system. Each transmitter performs carrier measurement for all other transmitters for a specified time period such as approximately 2 seconds for a typical 8-level FSK (frequency shift keying) modulation system for the ISM band under FCC (Federal Communications Committee) Part 15 regulations. Preferably, in addition to the carrier measurements, the correlation detection rate (CDR) of the transmitters is measured, e.g. by giving a FOM (figure of merit) for existence of clock within the carrier. Unit 330 couples between conjugate information, i.e. information regarding the same transmitter, arriving from units 310 and 320. The output of unit 30 is fed to a connectivity matrix computation procedure 334 which comprises looped blocks 340, 350 and 360. The connectivity matrix generator 10 is operative to generate a matrix whose elements represent levels of connectivity between each pair of transmitters in the system. In the illustrated example in which there are 21 transmitters, the connectivity matrix is a 21 x 21 symmetrical matrix whose diagonal is zeros. Fig. 21 is a simplified self-explanatory flowchart illustration of a preferred method of operation for the transmitter subset generator 20 of Fig. 1. In step 410, criterion (a) is the criterion (a) described above with reference to Fig. 4. In step 430, "nearest" typically is determined by computing, for each unassigned transmitter, the shortest distance between it and any assigned transmitter from among the various assigned transmitters, and selecting as "nearest" the unassigned transmitter having the smallest "shortest distance". The metric used in this step is not Euclidian but rather a metric ofthe connectivity matrix e.g. Minkowski. In step 440, criteria (a) - (e) are the criteria (a) - (e) described above with reference to Fig. 4. Optionally, step 460 is performed. In this step, the assignment of transmitters accomplished in steps 400 - 450 is optimized using conventional methods such as evolutionary genetic algorithmic methods such as those described in the Vose publication referred to herein. The output of the method of Fig. 21 is typically a transmitter subset vector such as that appearing in Appendix E. Fig. 22 is a simplified flowchart illustration of a preferred method of operation for the subset graph construction unit 30 of Fig. 1. The method of Fig. 22 receives a transmitter subset vector such as that generated by the method of Fig. 21, and treats each subset as a node in a graph. The method adds edges to connect each pair of subsets which have a common transmitter, thereby to generate a transmitter subset graph such as the graph of Fig. 5. Fig. 23 is a simplified flowchart illustration of a preferred method of operation for the subset graph coloring unit 40 of Fig. 1. The input to the method of Fig. 23 is the subset graph generated by the method of Fig. 22. In step 610, an "available" color is a color not yet assigned to any node. The output of Fig. 23 is a colored subset graph. An example of a colored subset graph is illustrated in Fig. 6. Fig. 25 is a simplified state machine illustration of the local reservoir management unit 70 of Fig. 1. Each transmitter has two states: idle, and "needing a channel". In step 830, the term "subset master" refers to the master ofthe subset to which the transmitter belongs or, if the transmitter belongs to more than one subset, to any ofthe masters of any ofthe subsets to which the transmitter belongs. Fig. 26 is a preferred method for performing the minimal cost channel computation step 870 in Fig. 25. Figs. 27A - 27B form an illustrative definition of the terms "central channel", "adjacent channel" and "alternate channel". Figs. 27A and 27B are spectral intensity diagrams of first and second transmitters respectively. As shown, the first transmitter's spectrum (Fig. 27A) includes a central lobe 1010, primary side lobes 1020 and 1030 and secondary side lobes 1040 and 1050. The second transmitter's spectrum (Fig. 27B) includes a central lobe 1060, primary side lobes 1070 and 1080 and secondary side lobes 1090 and 1100. The central lobe of each transmitter occupies a channel which is termed the "central channel" of that transmitter. When the specification speaks of a transmitter "borrowing a channel", what is meant is that the borrowed channel becomes that transmitter's central channel. The two primary side lobes of each transmitter occupy two respective channels which are termed the two "adjacent channels" of the transmitter. The two secondary side lobes of each transmitter occupy two respective channels which are termed the two "alternate channels" of the transmitter. Therefore, if the central channel of one transmitter A is the adjacent channel or even the alternate channel of another transmitter B, then there is interference between transmitters A and B as shown in Figs. 27A - B. A "zero cost" borrowing, from the point of view of transmitter A relative to transmitter B, refers to a situation wherein B borrows a channel but neither of that channel's adjacent channels or alternate channels overlap with any of A's central, adjacent or alternate channels. A non-zero cost borrowing, from the point of view of transmitter A relative to transmitter B, refers to a situation wherein B borrows a channel but at least one of that channel's adjacent channels or alternate channels overlap with at least one of A's central, adjacent or alternate channels. Typically, transmitter A is only permitted to borrow a channel if, for all other transmitters T it is true that the interference introduced by the borrowing process is no greater than the ratio between the amplitudes of T's central channel and either of T's adjacent channels. The level of interference caused to transmitter A by transmitter B is termed "adjacent channel interference level" if the ratio between A's central channel's amplitude and B's central channel's amplitude is equal to the ratio between the amplitudes of A's central and adjacent channels. Similarly, the level of interference caused to transmitter A by transmitter B is termed "alternate channel interference level" if the ratio between A's central channel's amplitude and B's central channel's amplitude is equal to the ratio between the amplitudes of A's central and alternate channels. Typically, if two channels are in the same reservoir, there is no interference between them. Fig. 28 is a schematic illustration of a transmitter 1500 which is shown communicating with other network elements in three different ways, as indicated by outgoing communication channels A, B and C (dotted lines), and incoming communication channels D, E and F (solid lines). As shown, transmitter 1500 transmits information, via channel A, to an individual network element 1510' from among a plurality of network elements 1510 which are within a wireless communication envelope around transmitter 1500, defining those network elements with which transmitter 1500 is capable of communicating. Transmitter 1500 transmits information, via channel B, to another network element 1520, which is illustrated as being in the same subset 1530 as transmitter 1500 although this need not necessarily be the case. Channel B is a channel allocated to transmitter 1500 in accordance with a preferred embodiment of the present invention. Transmitter 1500 additionally transmits information, via channel C and via a subset master 1540 common to both subsets 1530 and 1550, to a transmitter 1560 in subset 1550. Transmitter 1500 receives information, via channel D, from an individual network element 1510" from among the plurality of network elements 1510 which are within the wireless communication envelope around transmitter 1500. Transmitter 1500 receives information, via channel E, from another network element 1520, which is illustrated as being in the same subset 1530 as transmitter 1500 although this need not necessarily be the case. Channel B is a channel allocated to transmitter 1500 in accordance with a preferred embodiment of the present invention. Transmitter 1500 additionally receives information, via channel F and via a subset master 1540 common to both subsets 1530 and 1550, from a transmitter in subset 1550 such as transmitter 1560 or any other transmitter in subset 1550. Fig. 29 is a schematic illustration showing two transmitters 1500 and 1540 in the same subset 1530, communicating simultaneously (with transmitters 1540 and 1520 respectively). This is possible because one of the transmitters 1500 is using the channel allocated to subset 1530 whereas the other transmitter (subset master 1540) is using the control channel of subset 1530. A preferred process for generating subsets is now described. Given a plurality of Transmitters (Access Points) randomly distributed over a bounded domain, some of which may be connected to wired networks, the Transmitters may possibly interfere with each other, and cause interference in the network. The following description defines the sapient network segmentation and access engines involved in presenting a segmented topology that provides maximum network efficiency and capacity, while preserving maximal frequency reuse and robustness i.e. builds a network presenting a strong connectivity between the Transmitters with maximal network data flow. The following approach clusters the Transmitters into logical Subsets, whose physical characteristic is that of being a complete graph (where the Transmitters are the graph vertices). Following this Subset segmentation of the transmitter plurality, a Subset graph emerges. In order to enhance performance, the emerged graph should fulfill some requirements (discussed below). Assuming a limited and insufficient number of frequencies available, graph coloring is used for assigning a minimal needed frequency regime to the Subset graph. This process is called FCA (Fixed Channel Assignment). In operational terms, a local frequency bank is defined (the frequency reservoir set), and Subsets shall borrow frequencies from this set upon channel demand. In a multi-Subset structure, with a number of inherent topological characteristics, mobile stations present free dynamics in regard to Subset coverage and each mobile station preferably associates with at least one Subset from the cluster. Access is performed via a slotted-aloha mechanism of channel request acquisition followed by R-TDMA data sequencing. Every transmitted data entity accepted by a specific transmitter in the Subset, shall be analyzed for its destination resolving. Subsequent decisions shall forward this data entity over the Subset (which is at this point is assumed to be wired) to its destination transmitter (the transmitter responsible for the final access step to the destination). Initial and Boundary Conditions include: a transmitter set, { AP] ; an inter transmitter interference map, when dB is the mapping matrix, and dB tJ is the absolute value of the interference ratio for transmitter(I) and transmitter^); a defined threshold for the relative interference ration given in absolute value dB; a minimal number of Transmitters on a Subset, mm ; a maximal Number of Transmitters on a Subset, αr max ; a maximal number of radio interfaces on every transmitter: p; a finite set of discrete frequencies, [fj ; and a number of fixed channels for a Subset, K. Topology Generation The following described model, maps the transmitter set into a Subset set {R} , while preserving: 1) boundary conditions: d, e and f 2) minimization of Transmitters that belong to a single Subset, this can be expressed by minimization of • 3) Maximization of Subsets that are not interfering, thus frequency re-use can be implemented. The non-interference is defined as φ = {AP}\AP eR, πR J ,i = l,..,RJ = l,..,R,i ≠ j 4) Minimization of cliques that a Subset belongs to. When a neighbor clique is defined as [c,} = {AP} AP eR, πR j = \, ..,R,i ≠ j The rank of a given Subset topology is defined as min(Cαs , t 1 ,...,Cøst d ) when Cost ι is defined as Cost l = Cost c + ω • Cost, , Cost c min φ , and d is the number of different constellations (possible combinatory), and ω is a weighting factor. Subset generation is assumed to follow each transmitter birth (potential energy transmission), while transmitter death will cause no Subset changes until some pre-defined cost function violation (this cost function can be throughput criterion, connectivity loss, extreme external interference, etc.). A channel assignment engine running over the system performs assignment (graph coloring) over the Subset topology, thus as graph cliques contain fewer Subsets, the number of fixed frequencies (vertex colors) required to color the graph, becomes lower. Fig. 30, and the following description, is a step by step model for Subset generation under the initial conditions, and fulfilling the above listed requirements. Initially an AP is chosen that is located at "mass center" of the transmitter cluster, i.e., satisfies the following condition, The first Subset is constructed by aggregating Transmitters to the first assigned using the following manner, R, = {AP k } + {AP :_ ≤ dB kl Vl = s + l.. N, dB ks < dB w The remaining Subsets are build in two iterated steps, step 1 choose an transmitter that is the nearest transmitter to all ready existing Subsets, step 2 aggregates Transmitters that would be connecting- Transmitters between previous Subsets and the current one. And step 3, choose additional free Transmitters until the defined bound. Step 1 : Choose an AP that is located at "mass center" of the transmitter cluster, i.e., satisfies the following condition, ∑ dB^ - minj∑ dB t] | When / runs over the Transmitters in existing Subsets, and APk is chosen from the free Transmitters. Step 2: Choose {AP} ™m such that each AP, belongs to an existing Subset, and AP j preserves condition f, and there is no other transmitter in any ofthe existing Subsets that its dB to APk is smaller than the dB of Apj to Apk. The Subset is completed to α max from the free Transmitters set via steps 1 and 2. HCA Assuming no spreading, the system is required to solve a channel assignment problem. In general channel assignment rating is weighted by its spectral span (that is preferably the minimum needed) and the blocking probability (blocking is defined as the condition when a channel is needed but not available). The channel assignment process can be split into two different operational regimes (thus this is a Hybrid process): Fixed Channel Assignment (FCA) - that assigns a given number of channels to each Subset K, and by so doing ensures Subset traffic connectivity. Dynamic Channel Assignment (DCA) - that serves as a channel reservoir to Subset channel requests. As Subset channel request rate is spatio-temporal (a function of time and domain, i.e., Subset) different reservoirs will evolve during an operational regime. FCA Chromatic-Coloring is performed over the Subset graph by assigning K colors to each Subset, and by mapping those colors into the channel set, see Fig. 31 for illustration of coloring. After so doing, a new channel set is defined (the set of non-assigned channels) and name it as the channel reservoir set. A coloring of an undirected graph G is an assignment of colors to nodes of G such that no adjacent nodes of G have the same color. The chromatic number of G is the minimum number of colors needed to cover G. {/j re J = | j 0 - ΛΓ - „(G S ) When C n \G R ) is the chromatic number for G R . The coloring is performed by a simple implicit enumeration tree search method. Initially, node 1 is assigned color 1, and the remaining nodes are colored sequentially so that node / is colored with the lowest-numbered color which has not been used to color any nodes adjacent to node /. Let/? be the number of colors required by this feasible coloring. Attempt to generate a feasible coloring using q<p colors. To accomplish this all nodes colored with p must be recolored. Thus, a backtrack step can be taken up to node u, where node w+7 is the lowest index assigned color/?. Attempt to color node u with its smallest feasible alternative color greater than its current color. If there is no such alternative color which is smaller than /?, then backtrack to node u-1. Otherwise, recolor node u and proceed forward, sequentially recoloring all nodes u+1, u+2, ... , with the smallest feasible color until either node n is colored or some node v is reached which requires color/?. In the former case, an improved coloring using q colors has been found; in this case backtrack and attempt to find a better coloring using less than q colors. In the latter case, backtrack from node v and proceed forward as before. The algorithm terminates when backtrack reaches node 1. DCA As defined above, after the FCA procedure there are {/j I available channels in the reservoir. {/} is assigned to each Subset in G R . Each Subset borrows channels from this set upon internal request. The criteria for letting a channel from the reservoir is defined as follows: A graph of nearest-neighbors for a given Subset request - G nn is defined thus, G m = {V,E} Wιen V = {R, ,...,R Λ } and E = {R,,R such that R, nR ≠ ≠ j The available channels from{/} ei to a given Subset is defined as {/} * = { r ~ { }«* ., When {A cU q u R = { self " {/}»,, ' The blocking probability for the proposed channel borrowing based DCA is now defined, and thus demonstrating the Subset topology generation model stipulations. When , { J /) ) cl ,ique x is the unified set of all channels used in the cliques or Subset R and { * / '} coll is the set of collided channels (discussed later). In other words ^{ } Λ ue - \f) sel + {/}, | l represents neighbor requests, and • From these notations, it is clear that {/} depends upon traffic in the neighbor cliques. It is appreciated the number of channels preferably needed to construct {// I in such a way that no blocking shall appear in the system. After FCA the R Subset needs as peak demand a R - 1 channels, thus in order to eliminate the blocking probability a R anc * that I/ } , 1 coll R From this, minimizing c R or Jc will lead to the minimization of I W / I } res _..„ is a vector on R. Assuming is a given constant, then system level optimum is ΛeG„ given by minimization of ∑ {/} • Thus the blocking probability P B \ ) can be ,=ι res ' m '" given by stiffness of the probability decay is a function ofthe traffic demand and the access mechanism. Access As described for Subset-generation, the Transmitters are addressed as vertices of a wired graph, and are clustered into highly-connected Subsets. Logically each Subset serves as a network segment, thus networking-wise, each Subset becomes a wireless cell. Stations (mobile clients) wandering under the coverage of a specific Subset receive and transmit information (in a packet based fashion) via the Subset "gateways" - the Transmitters. It is of no significance to the station which transmitter collects its information, and how this information passes on the network. A two layered protocol is now described: the in-Subset protocol, also referred to as the radio MAC protocol, that is responsible for coordination over the radio transactions and for message delivery; and the Subset-protocol that is responsible for Subset-transmitter control, frequency assignment and inter-Subset connectivity. Following is a general description, and the joint mathematical model, of the protocols. The described access method fulfills two major tasks: over the coordination, and over the air high-capacity data transaction. Each of the tasks is bounded to some boundary conditions: the coordination function of the MAC is bounded to perform transmission request acquisitions and Transmitters-on-Subset timing synchronization. The transaction part of the MAC is referred to as LLC (Link Layer Control) and its purpose is to handle channel requests (from frequency assignment point-of-view), and to handle data traffic to and from the radio channel. Every transmitter on the Subset separately performs a Slotted-Aloha based acquisition of access requests and then handles transmissions under an R-TDM regime. In order to perform the R-TDM section of the protocol, the DCA algorithms are activated by the requesting transmitter (these requests are sent over the Subset media, to the Subset master - which is one ofthe Transmitters). Periodically, the transmitter accepts a permission to generate a slotted-aloha competition window. Using a dedicated channel, it sends a CCLR broadcast packet (competition- start announcement) over the radio. In response, all active stations not engaged with some transmitter compete in this process by sending a random access based RTS (Request To Send) control frame. The transmitter stores all access requests in a request-buffer (RTS queue). Using the specified queue as a FIFO, it polls the awaiting stations for data transmission. In case stations are addressed from the on-Subset side, reverse polling is used. As slotted aloha mechanisms are very sensitive to the correctness of the randomization seed, the transmitter should calculate the estimated number of active stations in the Subset at the next aloha competition window by advising with rest of the Transmitters on the same Subset, and then include this knowledge to the potential competitors over via the CCLR control frame. The second layer protocol performs three main tasks: the token control passing for the slotted-aloha competition timing for the transmitter Subset population, serves as the back-bone for channel assignment coordination: requests and releases of frequency basic-bands; and handles and transfers data traffic between the Transmitters in the Subset neighbor clique. This is a token based protocol, and two types of tokens may exist over the same Subset. The Subset coordination token whose puφose is to coordinate slotted-aloha competition timing. On receiving such a token, the transmitter sends back on the Subset a channel request from the Subset master (a different or the same transmitter) in case an over-the-radio transmission is needed (RTS queue is not empty, or there is available data for its radio stations). The master preferably responds immediately by either granting or denying the channel (at this point all neighbor-Subsets population is announced). It is noted that this token rolls just within its home Subset, and is transparent to the neighbor Subsets in the neighbor clique. The second token type rolls in the neighbor clique, i.e., circles over all neighboring Subsets. It serves like a token-Subset access grant, that upon receiving it , a non-idle transmitter is allowed to transmit its data packets (up to some pre-defined burst length given in time units). Destination address resolution is performed in the following manner. Upon receiving a data packet (invariant to its source location), the transmitter compares it to the Subset current population, i.e., every transmitter is assumed to have complete information regarding current address-queue status of all Transmitters on the same Subset. In case the destination address is located on the Subset (no information on neighbor Subsets), the transmitter forwards this packet to the home-transmitter, otherwise this packet is addressed as non-resolved, and is being transferred to the neighboring Subset in such a way this packet will circle the complete neighbor clique. Each transmitter performs IP routing from the Subset-topology viewpoint. Every data packet transmitted over the Subset topology, is encapsulated with its initial radio transmitter (home transmitter) IP address. The destination transmitter Subset (transmitter Subset that the destination station is located behind, could be a wired LAN or a mobile station) strips this encapsulation, and maps the source transmitter IP to the MAC packet address. In order to avoid packet loopings and Broadcast storms, a minimal spanning tree self configuration is implemented. As system conditions change as a function of time-dependent interference and varying traffic regimes, the spanning tree graph is to be re-computed periodically. The objective is defined as following: Consider an undirected graph G with given edge length (in our case traffic amount and its typical BER). The objective is to find a spanning tree in G such that the sum of the edge lengths in the tree is minimum, see Fig. 32. The following process achieves this objective over G (Subset graph). Initially, set T is empty. Edges are considered for inclusion in T in the non-decreasing order of their lengths (costs). An edge is included in T if it does not form a cycle with the edges already in T. A minimum spanning tree is formed when n-1 edges are included in T. in the implementation, the edges are partially sorted with their smallest edge at the root of a heap structure (a binary tree in which the weight of every node is not greater than the weights of its sons). The running time ofthe above process is 0(m log m), where m is the number of edges in the graph. The basic cell structure is described as follows and is illustrated in Fig. 33. The arrows indicate data flow. It is assumed that the queue behavior of an investigated transmitter is governed by six stochastic processes: A. Queue addition via in-Subset air protocol (regardless of destination location;. B. Queue addition via the Subset protocol, from another transmitter located on the same Subset, i.e., the destination address is in the investigated transmitter queue; C. Queue addition via the Subset protocol, from another transmitter not located on the same Subset, i.e., the destination address is in the investigated transmitter queue; D. Queue subtraction via in-Subset protocol, i.e., destination located behind the investigated transmitter, and is reflected in the transmitter's queue; E. Queue subtraction via Subset protocol, i.e., destination located behind an transmitter located on the same Subset; and F. Queue subtraction via Subset protocol, i.e., destination located behind an transmitter located on the same Subset, but its destination transmitter is not a Subset member. A hidden Markov model for queue dynamics is assumed. The system level model is constructed from an assembly of those queues. Queue dynamics is determined via stochastic equations, computed in event-step-jump time. The derivation of these equations and their mutual coupling is shown as follows. tø} 0 => {i > } => tø} {Q} M {dQ} => {Uy} At W en {Q} At = {θ}_ &ι + {dθ} 1) Construction of A process The basic entry probability for a single slotted-aloha slot by a single station is given by When ΠE is the estimated number of competing stations, and n a is the actual competing station number. Given a probability distribution Y{n) specifying the probability that any two stations in the Subset are at some dB threshold difference, i.e., partial interference over the same slot, the probability of slot drawing success for a u station collision over the same slot could be evaluated ■ Y k ( ) When k = — - — ; Thus, the complete slot access probability under BER will be given by: P = - r A' («) ; When S is the number of slots in the slotted-aloha window. Number of active stations is given by: n a = P(t,n) - ∑ Q RTS ; When ∑Q RTS is the number of stations in the RTS queues ofthe Transmitters in the Subset. The estimated number of active stations is preferably presented via some algorithmic form. As the estimation error increases, the access latency through the aloha mechanism increases non-linearly. Given the probability of a station entering the transmission request queue it is preferably translated into an actual number of packets: ΔQ RTS - min(l, R -« a ; As time steps for the probability estimation is Δt CCLR which the aloha token passing duration, and it is very short, ΔO Λr5 can not be immediately translated into the packet-queue. Thus, virtual arrival times are calculated and assigned. Let us define an arrival time vector β „ _. j, 0 + - 7>, is the probability of granting a frequency via the DCA process and t prev is the arrival time ofthe previous packet (initial time is the floating time t). 2) Construction ofthe B and C processes. Define P DR to be the probability of a packet originating in a given Subset, to be destined to a station in the same Subset. The probability that the destination address is located in the investigated transmitter's queue is given by t ; the assumption in this expression is that the destination addresses of packets, are distributed uniformly over the address domain when rv R '' is the total number of stations in the Subset (active and idle). Thus, the number of packets the investigated transmitter is preferably able to handle is given by P Q when j is the investigated transmitter. The C process - queue addition due to packet incoming from remote Subsets in the same neighbor clique. The probability for the investigated transmitter to handle such a packet is given by P Q R is the number of Subsets in the neighbor clique, not including the investigated transmitter's Subset. The assumption made here is that all Subsets operate under the same operational regime. Combining the two processes (B an C), provides the number of packets generated within the complete neighbor clique that are to be handled by the investigated transmitter in the At CCLR interval. Given a Subset-token to a transmitter, it can transmit Br over the Subset for a defined time period given by At T. R When Br is the burst Rate u length in minimal-packets. Thus the number of packets to be handled by the investigated transmitter is given by is the number of packets transmitted during the At CCLR duration (this could be a packet fraction). 3) Construction of the E and F processes. The probability that the investigated transmitter needs to transmit to the neighbor clique (not to its own air) is given by P E+F = ^ ~ P DR ' ': ^( R ~ V ~ P DR )' Q RT S % d a ft er AT simplifying this expression P E+F = ^ ~ Q RTS \ P ι DR [ n W + 1 ; Mapping this J J probability expression into number of packet is given by O S R 1 TS \ 1 - 0 \£R ] TS P DR ^(R. ) + 1 - 1 Thus, number of packets transmitted by the investigated transmitter to the neighbor clique (not over its own Subset) is given by Q E+F ■ R te D When N is the number ϊd of Transmitters over the entire neighbor clique and is given by N = ∑ a Rt k=\ The above description included herein assumes ring protocols for communication between transmitters within a subset and recursive slotted ALOHA for communication between transmitters between subsets. A particular advantage of a preferred embodiment of the present invention is that the suitability ofthe apparatus is not limited to communication systems having a particular transmitter distribution in interference space. Typically, conventional systems are suitable for a particular, symmetric transmitter topology. According to a preferred embodiment ofthe present invention, the apparatus is suitable for substantially any transmitter topology and in particular for applications in which transmitters are mobile and therefore, transmitter topology varies with time. Another particular advantage of a preferred embodiment of the present invention is that transmitters belonging to more than one subset are particularly suited to serve as relays, i.e. to relay information between the subsets to which they belong. The maximum number of transmitters per subset is typically determined by the subset transmission rate. For example, if the speed ofthe subset's medium is 100 mbps and each transmitter is capable of transmitting at most 10 mbps, then no more than 10 transmitters are typically allowed to belong to each subset in order to prevent waste of channels. A preferred software implementation of the present invention is set forth in Appendices A - C which contain computer listings of a software embodiment of the present invention. Appendices A and B are alternative embodiments, implemented in software, ofthe present invention, which receive a transmitter connectivity matrix, such as that generated by unit 10 of Fig. 1, as input, and perform the functions of units 20, 30, 34 and 40 of Fig. 1. Appendix C is a software listing of a preferred technique for providing a supervised optimization cycle ofthe method of Appendix A or Appendix B. Preferred methods for providing supervised optimization cycles are described in the above-referenced Vose publication. Appendix D is an initialization file for Appendices A or B; Appendix E is an example of an output file generated by running Appendices A or B on an ASCII file containing the data of Fig. 24; Appendix F is a software listing of a Matlab procedure performing the functions of units 60 and 70 of Fig. 1. The procedure runs on Matlab (Matrix Laboratory) for Windows, Version 5.0 and up, commercially available from The Math Works Inc., Cochituate Place, 24 Prime Park Way, Natick, MA 01760, USA. The procedure receives as input an output of Appendices A or B, such as the example output of Appendix E. Fig. 24 is a table showing input format suitable for either Appendix A or Appendix B. The contents of the table of Fig. 24 is an example of input which suitably represents the example of Figs. 2 - 19B in the present specification. A preferred method for utilizing the computer listings of Appendices A - C is as follows: a. Using a PC 486 equipped with Delphi Pascal, generate a unit and key in the contents of Appendix A and either B or C, under the appropriate headings (Unit, interface, uses, const, etc.) as shown in Appendices A - C. b. Compile and run the software using the "main" program of Delphi Pascal. It is appreciated that the software components of the present invention may, if desired, be implemented in ROM (read-only memory) form. The software components may, generally, be implemented in hardware, if desired, using conventional techniques. It is appreciated that the particular embodiment described in the Appendices is intended only to provide an extremely detailed disclosure of the present invention and is not intended to be limiting. It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination. It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope ofthe present invention is defined only by the claims that follow: APPENDIX A unit Ring_genera ion_routme; interface uses ' mco s, Messages, Sysϋtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; cor.st KaxNumofAP = 500; MaxNumO ings = 50; type TForrri = class (TForm) Bjttonl: Tautton; 3uttor.2: T3utton; Panell : TPanel ; Edit l : TEdit; 3utton3: TButton; procedure Buttor.lCiic.k (Sender : TOb^ect); procedure 3utton2Clιck (Sender : TOb 3 ect); procedure 3utton3Clιc (Sender : TObject); private { Private declarations } public { Public declarations } end; var Forrπl: TForml; {I/O related variables} e : string; Mass_File string; R_FιIe string; V_Fιle string; A_Fιle string; string; WriteOut : string; Ir.i_fιle : TextFile; Out_Fιle : TextFile; (Coπmon variables} Numo AP : Word; MaxA?_onRmg : Word; MaxRmg_forA? : Word; Sensitivity : Integer; Rings : Word; Ring : array [1..MaxNumOfRings, 1..MaxNumofAP] of Integer; procedure Initiation; procedure Mam_Loop; procedure Generate_Rmσs; proceαure Output; imolementation ( $R * . DFM ) procedure maιn_loop begin initiate ; Generate_Rmgs ; Output ; end ; procedure Initiation; var i, j : Word, begin Randomize; AssignFile (Inι_Fιle, inifile) ; Reset (Inι_Fιle) ; Reacln(Inι_Fιle, NumofAP); Readln (Inι_Fιle, Sensitivity); Readl (Inι_Fιle, MaxA?_onRιng) ; Readln (Inι_Fιle, MaxRmg_forAP) ; Reacln (Im_File) ; Reacln (Im_Fιle, K_Fιle) ; Reaαln (Inι_Fιle, WriteOut); CloseFile (Im File) ; {read the Map} AssignFile (Inι_Fιle, K_Fιle) ; Reset (Im_Fιle) ; for l := 1 to Numof ? do begin for 3 := i to NumofAP do read (Im_Fιle, K_Map[ι, 3 ] readl (Inι_Fιle) ; end; CloseFile (Im File) ; end; procedure Generate_rιngs; var Teπp, i :Word; Distance : array [1..MaxAP, 1..MaxAP] of Word; Temp_Dιstance, Pomtr :array [1.. MaxAP] of Word; NumOfRings :Word; begin Nu Of ings : =0 ; {CALCULATE THE DISTANCE MATRIX FROM AP LOCATION MATRIX - THE EUCLIDEAN CASE} for AP_a:=l to NumofA? αo for A?_b =1 to NumOfA? do Distance [A?_a, A?_b] :=Sqr (Sq (Fιeld[A?_a, 1] -Fιeld[AP_b, 1] ) + Sq (Field [AP_a, 2] -Field [A?_b, 2] ) ) , for ι:=l to NumofA? do for A?_a:=l to NumofAP-1 do for A?_b:=AP_a+l to NumOf ? dp if Distance [i, AP_a] > Distance [i, AP_b] then begin Temp :=Distance [i, A?_b] ; Dιstance[i, AP_b] :=Dιstance [i, AP_a] ; Distance [i, AP_a]:=Temp; end; for A?_a:=l to NumofAP do for A?_b:=l to NumOfAP dp {FIND THE A? THAT IS THE MASS CENTER OF THE CLOUD} for AP_a:=l to NumOfAP do Temp_Distance [A?_a] :=0; for A?_a:=l to NumOfA? do for AP_b:=l to NumOfAP do Temp_Distance [AP_a ] : =Temp_Distance [AP_a] +Distance [AP_a, A?_b] Temp:=l; for A?_a:=2 to NumOfAP do if Temp_Dιstance [A?_a] < Temp_Dιstance [Temp] then Temp : =AP_a ; {GENERATE FIRDT RING} Pomtr [1] :=1; Rmg[l, 1] :=Temp; Ine (RmgsOnAP [Temp] ) ; for A?_a:=l to MaxAP_onRing-l do begin Inc(Pointr[l] ) ; Ring [1, procedure Output; var i, ] : Word; begin AssignFile (Out_File, WriteOut) ; Rewrite (Out_Fιle) ; for i := 1 to Rings do begin write (Out_File, 'Ring' , i:3, ' : ' ) ; for j := 1 to NumofAP do write (Out_File, K_Map[NumofA?+l-i, j ] ) wπteln(0ut_Fιle) ; end; CloseFile (Out_File) ; end; proceαure TFor l . ButtonlClic (Sender : T0b 3 ect); begin Panell . isible := true; Mam LOOB; Panell .Visible := false; end; procedure TForml -Button2Click (Sender : TObject) begin Halt; end; procedure TForml . Button3Click (Sender : TObject) begin inifile := editl.text; Buttonl .Visible := true; 3utton2.Visible := true; Editl. Visible := false; 3utton3.Visible := false; end; end. APPENDIX B interface uses Windows , Messages , SysUtils , Classes , Graphics, Controls, Forms, Dialogs , StαCtrls , ExtCtrls ; const MaxNumofA? = 200 MaxNumofRings = SO MaxNumofRings3 = 210 H MaxNumofAP = 50 type TForml = class (TForm) 3uttonl : T3utton; 3utton2 : TButton; Panell : TPanel; Eait l : TEdit ; 3utton3: TButton; procedure 3uttoniClιc (Sender : TObject), procedure 3utton2Clιc (Sender : TOo 3 ect), procedure ButtonjClic (Sender : TObject), private { Private declarations } public { Public declarations } end; var Forml: TForml; {I/O related variables} K_Fιle string; Mass_Fιle string; R_Fiie string; V_Fιle string; A_Fιle string; mi ile string; WriteOut string; Inι_fιle TextFile; Out File TextFile; (Common variables ] NumofAP Word MaxA.?_onRmg Word MaxRmg_forA? Word Sensitivity Word. Rings array [1..MaxNumofRings, 1.. H_MaxNu_nofA?] of Word; MιnA?_onRιng Word; R Word; Termination 3oolean; R_Pomt array [1..MaxNumofRings] of Word; Fιrst_In_Rmg array [1..MaxNumofRings] of Word; Free_?omtr Word; Tresnold Single; Option Word; Dιstance_Parameter : Word; Rmgs_OnAP : array [1..MaxNumofAP] of Byte; K_Map : array [1..MaxNumof A.P, 1..MaxNumofAP] of Word; Distance, d : array [1..MaxNumofAP, 1..MaxNumofAP] of Single; Free_Lιst : array [1..MaxNumofAP] of Word; Grapn : array [1..MaxNumofRings, 1..MaxNumofRings] of Word; proceαure Generate_Locatιons; proceαure Initiation; procecure Generate_nngs; procecure Generate_Rmg_Graph; procedure Output; proceαure Mam_Looρ; implementation {SR *.DFM) { ' procecure mam_loop; begin initiation; Genera te_rmgs ; Generate_Rmg_Graph; Output; end; procedure Generate_Locatιons; var i, 3 : Wora; oegin Randomize; AssignFile (Inι_Fιle, _File) ; Rewrite (Inι_Fιle) ; Case Option of 1: for i := 1 to NumofAP do wrιteln(Inι_Fιle, Random(300) +1, ' ', andom (300) +1) , 2: for ι:=l to Trunc (Sort (NumofAP) J -l) do for 3 :=1 to Trunc (Sqrt (NumofAP) +1) do wrιteln(Inι_Fιle, 10+1*10,' ' , lO+j *10) ; enc; {of Case} CloseFile (Inι_Fιle) ; end; procedure Initiation; var l , 3 : Word; Location : array [ I . . MaxNumofAP, 1 . . 2 ] of Worα; begin mifile : = ' d : . ini ' ; AssignFile ( Inι_Fιle, mifile ) ; Reset ( Im_Fιle ) ; Readl ( Inι_Fιle , NumofAP) ; Readln (Inι_FιIe, Sensitivity) ; Reacln (Inι_Fιle, MιnAP_onRιng) ; Readln (Inι_Fιle, MaxAP_onRmg) ; Readln (Inι_File, MaxRmg_forAP) ; Readln ( Inι_Fιle ) ; Reacln (Inι_Fιle, Option); Readln (Iπι_Fιle, K^_Fιle) ; Reacln (Inι_Fιle, WriteOut); CloseFile (Inι_Fιle) ; Generate_Locatιons; {read the the A? Location Map ==== if tne user choice is "Random" then s ipp this reacmg loop} AssignFile (Inι_Fιle, K_FιIe) ; Reset (Inι_Fιle) , for i := 1 to NumofAP do readl (Inι_Fιle, Locatιon[ι, 1] , Location [l, 2] ) ; CloseFile (Im_Fιle) ; {Calculate the Distance Matrix} Distance_Parameter : =1 ; { Euclidian } Case Dιstance_?arameter of 1: for ι:=l to NumofAP αo for 3 :=1 to NumofAP do Distance [i, 3 ] :=SQRT (Sqr (Location [ι, 1]- Location [j , 1] ) + Sqr (Location [l, 2] - Location [j, 2] ) ) ; 2: for ι.=l to NumofAP do for 3 :=1 to NumofAP do if iOj tnen Distance [i, 3 ] :=Locatιon [i, 1] -Location [j , 1] else Dιstance[ι, 3 ] :=0; enc; {of case} {mitiate working arrays and variables} for ι:=l to MaxNumofRings do aegm R_Pomt [i] :=0; Fιrst_In_Rmg[ι] :=0; end; R:=0, end; procedure Generate_Rmgs ; procecure WorkArea; {generate a working matrix for tne distances} var i 3 : Word; begin for i:=l to NumofAP do for j:=l to NumofAP do d [i, j ] : =Distance [i, j ] ; end; procedure FreeAP; { Fmd the free-APs} var l, 3 , k: word; K_Not_Free: Boolean; begin for k:=l to NumOfAP do begin K_Not_Free : =False; for ι:=l to R do for j:=l to R_Point[i] do if Rings [i,j]=k then K_Not_Free:=True; if no (K_Not_Free) then begin Inc(Free_Pointr) ; Free_Lιs [Free_Pointr] :=k; enα; end; {check if all APs are assigned} if Free_?omtr=0 then Termination :=True else Termination :=False; end; var {of ring-generation procedure} i, j , Mιn_Indx,Mιn_Indx_to :Word; k,l,m .Word; Left: Word; Mm : Single; Temp, Temp_indx : array (1..MaxNumofAP] of Word; begin Mm_Ind : =65000; WorkArea; {find Cluster center} for ι:=l to NumofA? do Temp[i] :=0; for ι:=l to NumofAP do for j:=l to NumofA? do Temp [i] :=Temp [i] +Trunc (1+d [i, j ] ; M : =65000; for i:=l to NumofAP do if Temp[ι] <Mιn then begin Min:=Temp[ι] ; Mm_Indx: =ι; end; Inc(R); Inc(R_Po t [R] ) ; Rings [R,R_Pomt [R] ] : =Mm Indx; Fιrst_In_Rmg [Mm_Incx] :-l; {upcate number of rings per AP} Ine (Rmgs_OnA? [Mm_Indx] ) ; {add tne rest of the APs to the ring) for 3:=1 to MaxAP_or.Rιng-l do begin Mm .-=65000; for ι:=l to NumofAP do if (d [Rings [R, 1] ,ι]<Mm) and (d[Rmgs[R, 1] ,ι]>0) then begin Mm :=d [Rings [R, 1] , i] ; Mm_Indx:=ι; end; Inc(R_?cmt [R] ) ; Rings [R, R_?omt [R] ] :=Mm_Indx; d [Rings [R, 1] ,Mm_Indx] :=0; {update number of rings per A?} Iπc(Rιngs_OnAP[Mm_Incx] ) ; end; (GENERATE ALL OTHER RINGS} {find the nearest Free-AP to one of the rings APs} Termination :=False; Wmle not (Termination) do oegin WorkArea; Free_?omtr : =0 ; FreeAP; {For all Free APs find the AP that has the closest NOT-Free AP) Mm: =65000; for ι:=l to Free_Poιntr do for 3==1 to NumofAP do if (d[Free_Lιst[ι] ,3]<Mm) and (d [Free_Lιst [l] , 3 ] >0) and (Fιrst_In_Rmg[ι]=0) and (Rmgs_0nAP [3 ] >0) then begin Mm:=d[Free_Lιst [1] ,3] ; Mιn_Inαx:=ι; enα; if Mm<65000 then begin Inc(R) ; Inc(R_Poιnt [R] ) ; Rings [R, R_?oιnt [R] ] :=Free_Lιst [Mm_Indx] ; d[Rmgs [R, 1] , Free_Lιst [Mm_Indx] ] :=0; Fιrst_In_Rmg[Free_Lιst [Mιn_Inαx] ] :=1; {upcate number of rings per A?} Ine (Rιngs_OnAP[Free_Lιst [Mm_Inαx] ] ) ; enc; (perform the first stage of generation: co-locate all :onnected APs up to mm treshold} for :=! to MmA?_onRmg do begin Mm: =65000; for ι-=l to NuπofAP do if (d[Rιnσs [R, 1] , ι]<Mm) and (Rmgs_OnAF [i] >0) and (Rmgs_OnA? [1] <MaxRmg_forA?) and (d [Rings [R, 1] , ι]>0) then Degin Mm: =α [Rings [R, 1] , i] ; Mιn_mαx:=ι; end; if Mm<65000 then oecm {update number of rings per A?} Ine (Rιnσs_OnA?[Mm_Incx] ) ; enc; end, {perform the second stage of generation- co-locate all free APs up to max tresnold} {calculate tresnold: the maximal distance to a connected AP} {tnis parameter shoulα be changed to a better criterion to sute tne nor.-Euclic.ian spase. the best will be if the ap in a given ring will be at the most equal distance from one to the other. There is a possibility that a cetram ap will not be able to connect, thus it snould generate a seperate ring, and skipp the first stage of the connected ap acquisition} Tresnold :=0; for 3: =2 to R_Pomt[R] do if distance [Rings [R, 1] , Rings [R, 3] ]>Treshold then Tresnoic:=dιstance [Rings [R, 1] , Rings [R, 3] ] ; 3:=1; While (3<=MaxA?_onRιng-Mιr_A?_or.Rmg-l) or (Termination) do begin Mm:=65000; for ι:=l to NumofAP do if (d [Rings [R, 1] , ι]<Mm) and (Rmgs_OnA? [1] =0) and (d[Rmgs [R, 1] ,ι]>0) ana (d[Rmgs [R, 1] , ι]<Tresnold) then Degin M : =d [ Rings [ R, 1 i , i ] ; Mιn_Indx:=i; end; if Mm< 65000 then oegm Ine (R Point [R] ) ; {upαate numner of rings per AP} Ine (Rmgs_OnAP[Mιn_Incx] ) ; enc; Ine (3 ) ; end, if Not (Termination) begin Free_Pomtr : =0; FreeAP; end; end; {of Wmle} end; procedure Generate_Rmg_Graph; var l, 3, k, Count :Word; Grapn_Temp : array [1..MaxNumofRmgs3] of Word; begin for ι:=l to R do for 3"=1 to R do Grapn [l, 3 ] :=0; for ι:=l to MaxNumofRmgs3 do Graph_Temp [i] :=0; Count :=0; for k:=l to NumOfAP αo {if Rιngs_OnAP[κ] >1 then) begin for ι:=l to R do for 3-=l to R_Pomt[ι] do if Rmgs[ι,3]=k then begin Ine (Count) ; Grapn_Temp [Count] :=ι; end; if Count>=2 then for 3: =2 to Count do oegm Grap [Graph_Temp [1] , Graph_Temp [ ] ] :=1; Grapn [Graph_Temp [3 ] , Graph_Temp ( 1 ] ] :=1; end; Count :=0 ; end; end; procedure Output; var 1, 3 : Word; oeg AssignFile (Out_Fιle, WriteOut) ; Rewrite (Out_Fιle) ; Writeln (Out_Fιle, '.APs to Ring Mapping, and Ring connectivity list'); Writeln (Out_Fιle) , for 1 := 1 to R do beam write (Out_File, 'Ring' , i: 3, ' : ' ) ; for j := 1 to R_Point[i] do write (Out_File, Rings [i, ] : 4 ) {write out the ring connectivity information} for j:=l to (MaxAP_onRing-R_Poin [i] ) do write (Out_File, write (Out_File, ' ** '); for j:=l to R do if Graph [i,j]=l then Write (Out_File, j : A ) writeln (Out_File) ; end; { Writeln (Out_Filε) ; Writeln (Out_File) ; Writel (Out_Fiie, 'Ring Graph Connectivity Matrix'); Writeln (Out_File) ; } {for i:=l to R do begin write (Out_File, 'Ring*, i: 3, ' : ' ) ; for j:=l to R do if Graph [i,j]=l then Write (Out_File, j : 4 ) ; writeln (Out_File) ; end; ) CloseFile (Out File); procedure TForml . ButtonlClic (Sender : TObject); begin Panell .visible := true; Main_Loop; Panell .Visible := false; end; procedure TForml .3utton2Click (Sender : TObject); begin Halt; end; procedure TForml .3utton3Click (Sender : TObject); begin inifile := editl.text; Buttonl .Visible := true; Button2. Visible := true; Editl.Visible := false; 3utton3.Visible := false; end; end. APPENDIX C program GA; crt ; const { PopMaxSize : Maximal number of genes in tne system GeneMaxSize : Maximal number of Allels in every gene MutaticnSeed : Mutation rate for gene level Thr eshold2 Bread : Selection Strengtn NumOf Generations : Maximal number of generations in a searcn Al lei Dimension : Numerical diversity of eacn Allel [0, AllelDimension] MutationScnemaBm : Time bin for mutation senema calculations m terms of numoer of generations. WπteFrequency The frequency of output scheαule. Generation Generation countr. PopSize A matrix containing tne genes and their mtormation. GeneSize : Number of allels. PooCountr : General purpose countr for population scanning . AllelCountr : Counter for the Gene level scanning. Crosso erPomtr : The location of tne gene creaking point for purpose or crossover. NextPooCountr : The nu_noer of surviving individuals after the selection stage. TotFitness : Mean population fitness. PooFitness : An array containing the fitnesses of each gene in tne population. OffsprmgList : An array containing the offsprings information. ModelGene : A golden gene. Mu ationSchema : Low pat.n filter over mutation to fitness crossing on an allel basis scale. GenerationOutFile : Glooal log file. : Outout file. PopMaxSize = 400 GeneMaxSize 30, MutationSeed 10; AllelMutationSeed 8 Thresnold23reed 5 AllelDimension 20 NumOfGenerations = 2000 M tatιonSchema3ιn 1 WriteFrequency 100; :ype field = array [1.. PopMaxSize] of single; GenePop = array [1.. PopMaxSize, 1..GeneMa_vSιze) sger; TargetGene = array [ 1.. GeneMaxSize] of word. Generation : word PopSite : word GeneSize : word PopCountr : word AilelCountr : word CrossoverPomtr : word NextPopCour.tr : word TotFitness : single PopFitness : Field PopList : GenePop OffsprmgList : GenePop MocelGene : TargetGene MutationSchema : TargetGene GenerationOutFile : text f : text { Procecure NullArrays; begin for PopCountr := 1 to PopSize do begin PopFitness [PopCountr] := 0; for AilelCountr := 1 to GeneSize αo OffsprmgList [PopCountr, AilelCountr] := 0; end; "or AilelCountr := 1 to GeneSize do MutationScnema [AilelCountr] := 0; end; Procedure GenerateModelGene; begin for AilelCountr := 1 to GeneSize do ModelGene [AilelCountr] := Rando (AllelDimension + 1), end; Proceαure ImtiatelO; begin Assign (GenerationOutFile, ' c : \algrthms\ga\ga . out ' ) ; Rewrite (GenerationOutFile) ; ClrScr; end; { - Procedure WriteOut; begin writeln (GenerationOutFile) ; writeln (GenerationOutFile, 'Generation: '(Generation, '; Mean Fitness: ', TotFitness : 7 : 5) ; writeln (GenerationOutFile) ; writeln (GenerationOutFile) ; for PopCountr := 1 to Popsize αo oegin for AilelCountr := 1 to GeneSize do write (GenerationOutFile, PopList [Poocount: AilelCountr] :3) ; writeln (GenerationOutFile, ' ' , PopFitness (PopCountr] : 7 : 5) ; writeln (GenerationOutFile) ; end; writeln (GenerationOutFile) ; writel (GenerationOutFile) ; end; { j Proceαure GeneratePop; begin for PopCountr := 1 to PopSize αo for AilelCountr := 1 to GeneSize do PooList [PopCountr, AilelCountr] := Ranαom (AllelDimension - 1); enc; { } Function MutationRate : word; begin MutationRate := Round ( 100*Sqrt (1-PopFιtness [PopCountr] )) ; end; ( } Procedure AllocatePopFitness; var Temp_Fιtness : array [1.. PopMaxSize] of single; Degm for PopCountr := 1 to PopSize do Temp_Fιtness [PopCountr] := 0; for PopCountr := 1 to PopSize do for AilelCountr := 1 to GeneSize do Temp_Fιtness [PopCountr] := Temp_Fιtness [PopCountr] + A3S (PopList [PopCountr, AilelCountr] - ModeiGene [AilelCountr] ) ; for PopCountr := 1 to PopSize do if Temc_Fιtness [PopCountr] = 0 then Temp_Fιtness [PoDCountr] : = 1 else Tenp_fit.ness [PopCountr] := 0.9/Temp_Fιtness [PopCountr] ; for PopCountr := 1 to PopSize do PopFitness [PopCountr] := Temp_Fιtness [PopCountr] end; Function OneGeneFitness : Boolean; var Te pOneGeneFitness : single; oegm TempOneGeneFitness := 0; for AilelCountr := 1 to GeneSize αo TempOneGeneFitness := TempOneGeneFitness + A3S (PopList [PopCountr, AilelCountr] - ModelGene [AilelCountr] ) ; if PopFitness [ PopCountr] >= TempOneGeneFitness then OneGeneFitness : = False else OneGeneFitness : = True ; end; { , Function A.llelMutationRate : word; begin if MutationSchema [AilelCountr] <= 0 then AllelMutationRate : = AllelMutationSeed else AllelMutationRate : = AllelMutationSeed * ( 1 + Trunc (Sqrt (MutationScnema [AilelCountr] ) ) ) ; enα; ( j Procecure PopMutation; var AilelM tationDirection : integer; oegm for PopCountr := 1 to PopSize do if Ranαom(lOO) < MutationRate then for AilelCountr := 1 to GeneSize do if Random (100) < AllelMutationRate then Begin PopList [PopCountr, AilelCountr] := Ranαom (AilelDinension-'-l) ; if OneGeneFitness then Ine (MutationScnema [AilelCountr] ) else Dec (MutationScnema [AilelCountr] ) ; end; enc; { } Procedure Crossover; var PopChiidren : word; CrossOverLocation : word; GeneOne, GeneTwo : word; POpLack : word; begin If NextPopCountr * 3 > 2 * PopSize tnen NextPopCountr := (2 » PopSize) div 3; PopChiidren := NextPopCountr + 1; PopCountr := 1; While PopCountr <= (NextPopCountr - 1) do begin CrossOverLocation := Random (GeneSize - 1) + 1; for AilelCountr := 1 to CrossOverLocation do PopList [PopChiidren, AilelCountr] := PopList [PopCountr, AilelCountr] ; Ine (PopCountr) ; For AilelCountr := (CrossOverLocation + 1) to GeneSize o PopList [PopChiidren, AilelCountr] := PopList [PopCountr, AilelCountr] ; Inc (PopCountr) ; Ine (PooChildren) end; for PopCountr := PopChilαren to PopSize do begin GeneOne := Random (NextPopCountr) - 1; GeneTwo := GeneOne; While GeneTwo = GeneOne do GeneTwo := Ranαom (NextPopCountr) + 1; CrossOverLocation := Ranαom (GeneSize - 1) + 1; for AilelCountr := 1 to CrossOverLocation do PopList [PopCountr, AilelCountr] := PopList [GeneOne, AilelCountr] ; For AilelCountr : = (CrossOverLocation + 1 ) to GeneSize do OffsprmgList iPopCountr, AilelCountr] PopList [GeneTwo, AilelCountr] ; end; end; Procedure Selection; var AαdGene word; MaxGeneFitness single; MmGeneFitness : single; ReproαucmgSpicies array [1.. PopMaxSize] of word; TemoPoD : array [1.. PopMaxSize, 1..GeneMaxSize] of word; oegin TotFitness NextPopCountr 0; MaxGeneFitness PopFitness [1] ; MmGeneFitness PopFitness [1] ; for PopCountr := lto Popsize αo oegm TotFitness := TotFitness - PopFitness [PopCountr] ; if PopFitness [PopCountr] > MaxGeneFitness tnen MaxGeneFitness := PopFitness [PopCountr] else if PopFitness [PopCountr] < MmGeneFitness then M GeneFitness := PopFitness [PopCountr] ; end; TotFitness := TotFitness / PopSize; writeln (f, Generation, ' , ' , MaxGeneFitness, ' , ' , MmGeneFitness, ' , ' , T otFitness) ; if (MaxGeneFitness = 1) ana (TotFitness >= 0.9) then oegin WriteOut; Close (GenerationOutFile) ; Close (f) ; Halt; end; for PopCountr := 1 to PopSize αo if (MaxGeneFitness - PopFitness [PopCountr] ) <= (MaxGeneFitness - MmGeneFitness) /Thrεsnold2Breed then begin Ine (NextPopCountr) ; ReproducmgSpicies [NextPopCountr] := PopCountr; end; if NextPopCountr = 0 then begin writeln (' Population αieα out. Searcn not completed'); Close (f); Close (GenerationOutFile) ; HALT; end; for PopCountr := 1 to NextPopCountr do for AilelCountr := 1 to GeneSize do Te pPop [PopCountr, AilelCountr] := PopList [ReproducmgSpicies [PopCountr] , AilelCountr] for PopCountr := 1 to NextPopCountr do for AilelCountr := 1 to geneSize do PopList [PopCountr, AilelCountr] := TempPop [PopCountr, AilelCountr] ; if NextPopCountr <> Trunc (NextPopCountr/2) *2 then begin Ine (NextPopCountr) ; AddGene := Random (NextPopCountr - 1) + 1; for A.llelCountr := 1 to GeneSize do PopList [NextPopCountr, AilelCountr] := PopList [AddGene, AilelCountr] ; end; end; M A I N R O U T I N E begin Randomize ; Assign ( f , ' c : \algrth_rs \ga\f itness . out ' ) ; Rewrite ( f ) ; PopSize : = 300 ; GeneSize : = 10 ; ImtiatelC; GenerateModelGene; write (GenerationOutFile, 'Model Gene: ') for AilelCountr := 1 to GeneSize do write (GenerationOutFile, ModelGene [AilelCountr] :3) writeln (GenerationOutFile) ; writeln (GenerationOutFile) ; Generation := 1; GeneratePoσ; Wnile Generation < NumOfGenerations do begin NullArrays; AllocatePopFitness; if Generation = Trunc (Generation/WriteFrecuency) -WriteFrequency then WriteOut; Selection; Crossover; PopMutation; writeln (' Generation: ', Generation) ; if Generation = Trunc (Generation /Mutatιor.Schema3ιn) * MutationScnema3m then for AilelCountr := 1 to GeneSize do MutationSchema [AilelCountr] := 0; e (generation) ; end; WriteOut ; Close (GenerationOutFile ) ; Close (f) ; end. APPENDIX D ring. ini Apendix A and B Initialization file 20 Number of APs 90 Lowest sensitivity for Rx in dBm 2 Mininmal number of AP on ring 4 Maximal Number of APs on the Ring 2 • Upper bound of rings on AP 2 1 - random position, 2 - grid position d: \sim\mac-sim\5GHz\Ring_dBm. TBL d: \sim\mac-sim\5GHz\Ring. out i : \users\common\zvika\aviw\Ring_dBm. TBL i : \users\common\zvika\aviw\Ring. out APPENDIX E Ring. out Transmitter to Subset Mapping Subset connectivity list Ring 2 3 4 Ring 1 3 Ring 1 2 8 6 1 2 4 5 Ring 10 9 6 5 1 3 5 6 Ring 12 1 10 11 3 4 6 7 Ring 14 12 5 -13 20 4 5 7 8 Ring 16 11 13 17 5 6 8 Ring 18 17 14 19 21 6 7 APPENDIX F function cbwI=CBWL ( ) '. his function computes and manages a channel reservoirs of six '. • .cliques. The cliques are defined by the example in Figure 7. ".Function's input: l ) Mapping vector between transmitters and Subsets % 2 ) Subset graph, defined as a connectivity matrix 3 ) A Carrier-sense matrix that defines levels of % interference between the transmitters 5.) transmitter load vector - a matrix that defines the % communication intencity of each transmitter in terms ϊ of frames per second '•.Function's output: ■ J.1) Complete time/event map of the system, as presented in the I foliowinσ examole: Time Tx-i Tx-2 Tx-21 i 2 __.ach local reservoir behavior, as presented in the following example: Time -# Res-1 Res-2 Res- A A 3 3 C C D D subnets=zeros (6,21); %Filling the subnet matrix with he relevant data n(l, 1)=2; n(l, 2)=2; n(l, 3)=2; n(2, 3)=1; nil, 4)=1; n(2, 4)=3; n(l, 5) =3; nC, 6) =3; n{2, 6)=5; n(l, 7) =5; n ( 1 , 8 ) =5 ; n(l, 9) =5; n(l, 10)=3; n(2,10)=5; n(l,ll)=l; n(2,Il)=3; n(l,12)=l; n(2,il)=4; n(l,13)=4; n(l, 14 ) =4; n(2, 14)=6; n(l,15)=6; nC, 16) =6; n(I, 17) =6; n(l, 18 ) =4; n(2,18)=6; nil, 19) =1; n(2, 19)=4; n(i, 20)=1; n(2,20)=2; n (1,21) =2; %N ' eιgbor Cl ique connect :raoh clioue=zeros (6) ; 2=1:6; clique (z, z) =1; clique (1,2) =1; ciiσue (1 3)=1; clique (1, ) =1; clique (2,1) =1; clιque(3, 1) =1; clique (3 5)=1; clique (4,1) =1; ciiσue (4 6)=1; clique(5, 3) =1; clique (6,4) =1; Initial reservoir of all cliques num_clιques=c; .For tne specific example -It is important to assign less channels than transmitters, "i.e., otherwise no reservoir nulling will occur rβservoιr=ones (num_ciιques) ; ^Assign initial reservoirs reservoir ( : ) =r.um_channels; ^Channel request vector cnannel_neeα=zeros (1, 21) ; %Fcr the specific example case expressec threshold ^Associate output files " "Initial time aπf tne total simulation duration in event units ιme=i; fm=5000; .Mam loop. Perform execution for tιme=0 to tιme=fm ΪAt eacn pomt calculate tne reservoirs of every clique ■ a e print it out for tιme=l:fm ilmtiate tne reservoir vectors - it is assumed that each Borrowing oαuration is equal to one time step reservoir ( : ) =num_cnannεls; i irst, generate tne channel request vector channel need ( : ) = (random ( ) , channel_Need_threshold) ; %For all nodes (transmitters the network, chack whetner they ϊneed a channel and then borrow one - iff available and update all .reservoirs accorαmgly for node=l:21 if channel nee (node) >0 ξ-Check to what cliques this node (transmitter) is associated sand if possiale borrow a cnannel if reservoir (n (1, node) ) >0 reservoir (n (1, noαe) =reservoιr (n (1, node) -1 else if n(2,node)>0 £& reservoir (n (1, noαe) ) >0 reservoi (n (1, noαe) =reservoι (n (1, noαe) -1, end; end; ϊreservoir not emply prmtf(fl, reservoir) ; print ( 2, chan.nel_.need) ; er.cz; " cr.annei eed enc; .for loop enc, imam for loop close ( 1) ; close ( 2)»-

Claims: CLAIMS 1. A method for utilization of a first plurality of channels by a second plurality of transmitters, the method comprising: defining a third plurality of transmitter subsets such that at least one of the second plurality of transmitters is included in each transmitter subset; assigning at least one channel from among the first plurality of channels to each transmitter subset, to be shared among the transmitters in that transmitter subset, such that less than all of the first plurality of channels are assigned to the third plurality of transmitter subsets, thereby defining a reservoir of channels which have not been assigned to any transmitter subset; and sharing the channels in the reservoir of channels between all of the second plurality of transmitters. 2. A method according to claim 1 wherein a first transmitter is entitled to use a channel in the reservoir even if the channel is being used by a second transmitter, if there is no neighbor-clique which includes both the first and the second transmitters, wherein a neighbor-clique of an individual transmitter subset comprises all transmitter subsets which share at least one common transmitter with the individual transmitter subset. 3. A method by which an individual transmitter transmits, in a situation in which a first plurality of channels is serving a second plurality of transmitters including the individual transmitter, the method comprising: if the transmitter belongs to a subset of transmitters which is served by a first channel from among the first plurality of channels, and if the first channel is available, transmitting over the first channel; otherwise, if a reservoir of channels includes an available second channel, transmitting over the second channel, wherein the reservoir includes all channels from among the first plurality of channels which do not serve any subset of transmitters. 4. A method according to claim 1 wherein said channels are separated by their transmission frequency. 5. A method according to claim 1 wherein said channels are separated by their transmission code. 6. A method according to claim 5 wherein said channels comprise CDMA (code division multiple access) channels. 7. A method according to claim 1 wherein at least some of said channels comprise wireless channels. 8. A method according to claim 1 wherein the subset defining step also comprises selecting, for each subset, from among the transmitters in the subset, a subset master to which channel allocation requests are addressed over a control channel. 9. A method according to claim 8 wherein the subset master is selected so as to maximize utilization of said control channel for communication of transmitters in the subset with transmitters in other subsets to which the subset master belongs. 10. A method according to claim 8 wherein the transmitter in the subset which belongs to the largest number of other subsets is selected as subset master. 11. A method according to claim 1 and also comprising releasing a dropout transmitter by disconnecting the dropout from the subsets to which the dropout belongs including informing only the masters of each of the subsets that the dropout has been disconnected. 12. A system for utilization of a first plurality of channels by a second plurality of transmitters, the system comprising: a channel assigner operative to assign at least one channel from among the first plurality of channels to each of a third plurality of transmitter subsets, each including at least one of the second plurality of transmitters, the channel to be shared among the transmitters in that transmitter subset, such that less than all of the first plurality of channels are assigned to the third plurality of transmitter subsets, thereby defining a reservoir of channels which have not been assigned to any transmitter subset; and a channel sharer operative to share the channels in the reservoir of channels between all ofthe second plurality of transmitters.

Inventors: SLOVIN ZVI, SLOVIN, ZVI
Applicants: MARCONI COMMUNICATIONS ISRAEL, SLOVIN ZVI, MARCONI COMMUNICATIONS ISRAEL LTD., SLOVIN, ZVI
Application year: 1999
Main classification: H04Q7
IPC codes: H04J13, H04J15, H04W16