<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s90907177</article-id>
<article-id pub-id-type="publisher-id">sensors-09-07177</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Game and Balance Multicast Architecture Algorithms for Sensor Grid</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Fan</surname><given-names>Qingfeng</given-names></name><xref ref-type="aff" rid="af1-sensors-09-07177"><sup>1</sup></xref><xref ref-type="aff" rid="af2-sensors-09-07177"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Wu</surname><given-names>Qiongli</given-names></name><xref ref-type="aff" rid="af1-sensors-09-07177"><sup>1</sup></xref><xref ref-type="aff" rid="af3-sensors-09-07177"><sup>3</sup></xref><xref ref-type="corresp" rid="c1-sensors-09-07177"><sup>★</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Magoulés</surname><given-names>Frèdèric</given-names></name><xref ref-type="aff" rid="af1-sensors-09-07177"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Xiong</surname><given-names>Naixue</given-names></name><xref ref-type="aff" rid="af4-sensors-09-07177"><sup>4</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Vasilakos</surname><given-names>Athanasios V.</given-names></name><xref ref-type="aff" rid="af5-sensors-09-07177"><sup>5</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>He</surname><given-names>Yanxiang</given-names></name><xref ref-type="aff" rid="af2-sensors-09-07177"><sup>2</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-09-07177">
<label>1</label> EcoleCentrale de Paris, Laboratory MAS, 92290, Chatenay-Malabry, France; E-Mails: <email>qingfeng.fan@ecp.fr</email> (Q.F.); <email>frederic.magoule@ecp.fr</email> (F.M.)</aff>
<aff id="af2-sensors-09-07177">
<label>2</label> School of computer science, Wuhan University, 430079, Wuhan, China; E-Mail: <email>yxhe@whu.edu.cn</email></aff>
<aff id="af3-sensors-09-07177">
<label>3</label> INRIA Saclay Île-de-France, 91893, Orsay Cedex, France</aff>
<aff id="af4-sensors-09-07177">
<label>4</label> Department of Computer Science, Georgia State University, P.O. Box 3994, Atlanta, GA 30302-3994, USA; E-Mail: <email>nxiong@cs.gsu.edu</email></aff>
<aff id="af5-sensors-09-07177">
<label>5</label> Department of Computer and Telecommunication Engineering, University of Western Macedonia, GR 50100 Kozani, Greece; E-Mail: <email>vasilako@ath.forthnet.gr</email></aff>
<author-notes>
<corresp id="c1-sensors-09-07177">
<label>★</label>Author to whom correspondence should be addressed; E-Mail: <email>qiongli.wu@ecp.fr</email>; Tel.: +33-6-6710-6893; Fax: +33-1-4113-1193.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2009</year></pub-date>
<pub-date pub-type="epub">
<day>9</day>
<month>9</month>
<year>2009</year></pub-date>
<volume>9</volume>
<issue>9</issue>
<fpage>7177</fpage>
<lpage>7202</lpage>
<history>
<date date-type="received">
<day>20</day>
<month>6</month>
<year>2009</year></date>
<date date-type="accepted">
<day>18</day>
<month>8</month>
<year>2009</year></date></history>
<permissions>
<copyright-statement>© 2009 by the authors; licensee MDPI, Basel, Switzerland</copyright-statement>
<copyright-year>2009</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>We propose a scheme to attain shorter multicast delay and higher efficiency in the data transfer of sensor grid. Our scheme, in one cluster, seeks the central node, calculates the space and the data weight vectors. Then we try to find a new vector composed by linear combination of the two old ones. We use the equal correlation coefficient between the new and old vectors to find the point of game and balance of the space and data factorsbuild a binary simple equation, seek linear parameters, and generate a least weight path tree. We handled the issue from a quantitative way instead of a qualitative way. Based on this idea, we considered the scheme from both the space and data factor, then we built the mathematic model, set up game and balance relationship and finally resolved the linear indexes, according to which we improved the transmission efficiency of sensor grid. Extended simulation results indicate that our scheme attains less average multicast delay and number of links used compared with other well-known existing schemes.</p></abstract>
<kwd-group>
<kwd>game and balance</kwd>
<kwd>multicast</kwd>
<kwd>sensor grid</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>A sensor grid integrates wireless sensor networks with grid infrastructures to enable real-time sensor data collection and the sharing of computational and storage resources for sensor data processing and management. It is an enabling technology for building large-scale infrastructures, integrating heterogeneous sensor, data and computational resources deployed over a wide area, to undertake complicated surveillance tasks such as environmental monitoring [<xref ref-type="bibr" rid="b1-sensors-09-07177">1</xref>].</p>
<p>The sensor grid enables the collection, processing, sharing, and visualization, archival and searching of large amounts of sensor data. The vast amount of data collected by the sensors can be processed, analyzed and stored using the computational and data storage resources of the grid. The sensors can be efficiently shared by different users and applications, which can access a subset of the sensors to collect the desired type of sensor data. A sensor grid provides seamless access to a wide variety of resources in a pervasive manner [<xref ref-type="bibr" rid="b2-sensors-09-07177">2</xref>]. Advanced techniques in artificial intelligence, data fusion, data mining, and distributed database processing can be applied to make sense of the sensor data and generate new knowledge of the environment.</p>
<p>In many cases the amount of data in different nodes varies considerably, the proportion between the maximum and minimum is sometimes 1:1,000,000 or even much more. These data are widely distributed in different geographical positions and dynamically updated, replicated frequently, therefore a large number of transmission is necessary [<xref ref-type="bibr" rid="b3-sensors-09-07177">3</xref>]. The geographical scattering of sensor nodes are of interest in analyzing these data sets.</p>
<p>A sensor-grid-based architecture has many applications such as environmental and habitat monitoring, healthcare monitoring of patients, weather monitoring and forecasting, military and homeland security surveillance, tracking of goods and manufacturing processes, safety monitoring of physical structures and construction sites, smart homes and offices. As shown in <xref ref-type="fig" rid="f1-sensors-09-07177">Figure 1</xref>, how to find a good hierarchical architecture to link the sensor grid nodes and consequently to realize an efficient data transmission is a very meaningful and challenging issue [<xref ref-type="bibr" rid="b4-sensors-09-07177">4</xref>].</p>
<sec>
<label>1.1.</label>
<title>The Overview of Previous Algorithms</title>
<p>To achieve the high efficiency of the system, we proposed a set of novel Game and Balance Hierarchical Multicast Architecture Algorithms for sensor grid. The conception of multicast comes from network communication. Multicast technology is an important method of IP network data transmission. Between the senders and receivers, the system implements the link of network from one point to multi-points. According to the space relationship between one point sender and multi-points received, the system constructs optimal tree architecture for optimal data transfer. The advantage of multicast is that it can get the least using links number and shortest transfer delay, so that it promotes data transfer efficiency and decrease the possibility of network block. The most famous NICE protocol is a hierarchical multicast tree technique, which is an extendable multicast protocol that supports, from one sender to a number of receivers, low bandwidth data flow appliance.</p>
<p>Many well-known multicast schemes have been presented in reference listed: Double-Channel XY Multicast Wormhole Routing (DCXY) [<xref ref-type="bibr" rid="b5-sensors-09-07177">5</xref>] uses an extension of the XY routing algorithm to set up the routing scheme. Dual-Path Multicast Routing (DPM) [<xref ref-type="bibr" rid="b6-sensors-09-07177">6</xref>] is developed for the 2-<italic>D</italic> mesh. CAN-based multicast [<xref ref-type="bibr" rid="b7-sensors-09-07177">7</xref>] is developed for the multicast applications that use the CAN [<xref ref-type="bibr" rid="b8-sensors-09-07177">8</xref>] (Content-Addressable Network) configuration.</p>
<p>However, in the previous work of multicast for network communication, only one factor that affect the date transmission efficiency is considered [<xref ref-type="bibr" rid="b9-sensors-09-07177">9</xref>], which can not be applicable for sensor grid where a lot of other factors should be considered, i.e., the data amount factor. So in this paper, we proposed an algorithm architecture for the sensor grid based on multicast concept but considering two or more factors.</p></sec>
<sec>
<label>1.2.</label>
<title>Motivation</title>
<sec sec-type="methods">
<title>Synthetically considering the space factor and the data factor</title>
<p>The former hierarchical multicast schemes only consider the factor of geographical position, which means the shortest path way using the least number of links. While constructing the hierarchical multicast tree, the system often chooses the geographical central node as the cluster core or near the core. Hence it can save the transmission distance [<xref ref-type="bibr" rid="b8-sensors-09-07177">8</xref>]. However, in sensor grid, the data quantities of different nodes are much different [<xref ref-type="bibr" rid="b10-sensors-09-07177">10</xref>]. Usually 80% of the data often is centralized in 20% nodes; naturally these important nodes should be paid more attention to. Generally speaking, the more data the nodes have, the more data transmission will happen from the nodes [<xref ref-type="bibr" rid="b11-sensors-09-07177">11</xref>]. If the data scale is the only factor we consider, to choose the node with larger data quantity as root or near the root would undoubtedly improve the efficiency of the data transmission.</p>
<p>As a result, the system should consider not only the space factor, but also the data quantity as the factor [<xref ref-type="bibr" rid="b9-sensors-09-07177">9</xref>]. The two factors are independent with each other and related with each other. In other words, their relationship is game and balance. We try to set a group of functions in order to draw an elaborate balance between them in our to-be-presented algorithm. The basic idea goes through the whole process of constructing the hierarchical multicast tree. The space factor and data factor are two factors independent with each other, which have meaning and formation respectively; both of them tend to maximize their result. Namely the two factors game with each other. On the other hand, the two factors also co-exist in a system, common working, mutual interaction and constraint. Namely they balance with each other. We must synthetically consider the space and data factors while constructing the multicast tree.</p></sec>
<sec>
<title>The specific implementation of the algorithms</title>
<p>After summarizing the context of the algorithms, this subsection discusses the concrete implementation of the algorithms [<xref ref-type="bibr" rid="b12-sensors-09-07177">12</xref>]. The motivation of this paper is to design a multicast scheme in <italic>m</italic>-<italic>D</italic> Sensor grid that can achieve not only shorter multicast delay and less resource consumption, but also the efficient data transmission.</p>
<p>The network is partitioned into clusters in terms of some regular Sensor grid area. After group members are initially scattered into different clusters, a tree is built to connect the cluster members within each other. The connection among different clusters is done through hooking the tree roots [<xref ref-type="bibr" rid="b13-sensors-09-07177">13</xref>].</p>
<p>To construct such an architecture, a set of novel algorithms based on the <italic>m</italic>-<italic>D</italic> Sensor grid are presented:
<list list-type="order">
<list-item>
<p>Cluster formation algorithm that divides the group members into different clusters in terms of static delay distance;</p></list-item>
<list-item>
<p>Relative weight vectors generation algorithm that seeks the spatial central node in every cluster, calculates the space weight of every node, searches the weight of data quantity of every node, and finds the maximum;</p></list-item>
<list-item>
<p>The least weighted path tree algorithm that, after obtaining the space weight vector and the data quantity weight vector, builds binary simple equations, seeks linear parameters, determines the new weight vector according to the algebra sum of the two known vectors, and generates the least weighted path tree;</p></list-item>
<list-item>
<p>Multicast routing algorithm that efficiently dispatches the multicast packets in the group on the basis of the architecture constructed by the above three algorithms.</p></list-item></list></p>
<p>After checking the relative documents, this paper is one of the pioneer to use the multicast architecture for grid computing field [<xref ref-type="bibr" rid="b14-sensors-09-07177">14</xref>], which—according to the idea from qualitative to quantitative—builds mathematic model, finds game and balance relationship, resolves linear parameter, and accurately improves the efficiency of transmission of sensor grid.</p></sec></sec>
<sec>
<label>1.3.</label>
<title>Organization</title>
<p>The architecture of this paper as follows: After describing the motivation in Section 1., the paper presents the problem in Section 1.3. and discuss how to figure out different weights in Section 2. Section 3. depicts the four sub-algorithm and the detail steps in different sub-algorithm. Section 4. describes the performance evaluation, which explains the model and result of the simulation. At last, Section 5. draws a conclusion and talks about the future work.</p>
<p>To improve the efficiency of data transmission in a quantitative way, the first thing we should do is to establish the mathematical model to describe the system.</p>
<p>The multicast group with <italic>l</italic> members of the system is denoted as: <italic>G</italic> = {<italic>U</italic><sub>0</sub>, . . ., <italic>U<sub>i</sub></italic>, . . ., <italic>U</italic><sub><italic>l</italic>−1</sub>}, where <italic>i</italic> ∈ [0, <italic>l</italic> − 1]. Each member can be identified by <italic>m</italic> coordinates: <italic>U<sub>i</sub></italic> = (<italic>u</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>u<sub>i,j</sub></italic>, . . ., <italic>u</italic><sub><italic>i,m</italic>−1</sub>), when 0 ≤ <italic>j</italic> ≤ <italic>m</italic> − 1. For example, member <italic>U</italic><sub>0</sub>: 2 dimension coordinates (<italic>u</italic><sub>0,0</sub>, <italic>u</italic><sub>0,1</sub>) as (0, 0) and member <italic>U</italic><sub>1</sub>: 2 dimension coordinates (<italic>u</italic><sub>1,0</sub>, <italic>u</italic><sub>1,1</sub>) as (0, 1) etc [<xref ref-type="bibr" rid="b15-sensors-09-07177">15</xref>].</p>
<p>As illustrated in <xref ref-type="fig" rid="f4-sensors-09-07177">Figure 4</xref>, there are two nodes <italic>U<sub>i</sub></italic> = (<italic>u</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>u<sub>i,j</sub></italic>, . . ., <italic>u</italic><sub><italic>i,m</italic>−1</sub>) where <italic>i</italic> ∈ [0, <italic>l</italic> − 1] and <italic>U</italic><sub><italic>i</italic>′</sub> = (<italic>u</italic><sub><italic>i</italic>′,0</sub>, . . ., <italic>u<sub>i′,j</sub></italic>, . . ., <italic>u</italic><sub><italic>i′,m</italic>−1</sub>), where <italic>i</italic>′ ∈ [0, <italic>l</italic> − 1] and <italic>i</italic>′ ≠ <italic>i</italic>. We define <italic>U<sub>i</sub></italic> and <italic>U<sub>i′</sub></italic> are neighbors, if and only if <italic>u<sub>i,j</sub></italic> = <italic>u<sub>i′,j</sub></italic> for all <italic>j</italic>, except <italic>u<sub>i,j′</sub></italic> = <italic>u<sub>i′,j′</sub></italic> ± 1 along only one dimension <italic>j</italic>′. Thus, in the <italic>m</italic> − <italic>D</italic> Sensor grid, an node may have <italic>m</italic> to 2<italic>m</italic> neighbors [<xref ref-type="bibr" rid="b5-sensors-09-07177">5</xref>].</p>
<p>We also define the Manhattan distance of two nodes [<xref ref-type="bibr" rid="b16-sensors-09-07177">16</xref>]. In a 2-<italic>D</italic> sensor grid, the static delay distance of two nodes (<italic>X</italic><sub>0</sub>, <italic>Y</italic><sub>0</sub>) and (<italic>X</italic><sub>1</sub>, <italic>Y</italic><sub>1</sub>) is |<italic>X</italic><sub>1</sub> − <italic>X</italic><sub>0</sub>| + |<italic>Y</italic><sub>1</sub> − <italic>Y</italic><sub>0</sub>|. The sum of static delay distances from all the other nodes (<italic>X<sub>i</sub></italic>, <italic>Y<sub>i</sub></italic>) to (<italic>X</italic><sub>0</sub>, <italic>Y</italic><sub>0</sub>) (<italic>i</italic> ∈ [1, <italic>n</italic> − 1]) is: 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi></mml:mrow>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi></mml:mrow>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mi>X</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi></mml:mrow>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mi>Y</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>Y</mml:mi></mml:mrow>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>.</p>
<p>Then the question we discuss next is how to configure the space factor and the data factor. We established two weight vectors to describe the space factor and the data factor in each cluster, and the value of every item means the relative weight of every node. For example, the space weight vector of the <italic>j</italic> − <italic>th</italic> cluster is <italic>W</italic>′<italic><sub>j</sub></italic> = (<italic>w</italic>′<sub><italic>j</italic>,0</sub>, . . ., <italic>w</italic>′<sub><italic>j,i</italic></sub>, . . ., <italic>w</italic>′<sub><italic>j,n</italic>−1</sub>), <italic>i</italic> ∈ [0, <italic>n</italic> − 1], <italic>n</italic> means that there are <italic>n</italic> nodes in the cluster, <italic>w</italic>′<italic><sub>j,i</sub></italic> means the space weight of the node <italic>i</italic> within the <italic>j</italic> − <italic>th</italic> cluster; the data weight vector of the <italic>j</italic> − <italic>th</italic> cluster <italic>W</italic>″<italic><sub>j</sub></italic> = (<italic>w</italic>″<sub><italic>j</italic>,0</sub>, . . ., <italic>w</italic>″<italic><sub>j,i</sub></italic>, . . ., <italic>w</italic>″<sub><italic>j,n</italic>−1</sub>), <italic>i</italic> ∈ [0, <italic>n</italic> − 1], <italic>n</italic> means that there are <italic>n</italic> nodes in the cluster, <italic>w</italic>″<italic><sub>j,i</sub></italic> means the data weight of the node <italic>i</italic> within the <italic>j</italic> − <italic>th</italic> cluster; the general weight vector of the <italic>j</italic> − <italic>th</italic> cluster is <italic>W<sub>j</sub></italic> = (<italic>w</italic><sub><italic>j</italic>,0</sub>, . . ., <italic>w<sub>j,i</sub></italic>, . . ., <italic>w</italic><sub><italic>j,n</italic>−1</sub>),<italic>i</italic> ∈ [0, <italic>n</italic> − 1], <italic>w<sub>j,i</sub></italic> means the general weight of the node <italic>i</italic> with the <italic>j</italic> − <italic>th</italic> cluster.</p>
<p>Next, we will discuss how to get the value of the three weight vector we defined before, which is the main point of this paper.</p></sec></sec>
<sec>
<label>2.</label>
<title>The Architecture of the Algorithms for Each Weight Vector</title>
<sec>
<label>2.1.</label>
<title>The Space Weight Vector</title>
<p>The data weight vector is easier to be computed than the space weight vector for its direct physical meaning of real world and easy for computer to realize. The space weight can be identified easily by people, but for computer to understand, the system has to study special algorithms. The first step we should do is to make the system to find the central node of the cluster, and then to figure out the space weight of each node to the central node according to the shortest path principle.</p>
<p>Generally speaking, the greater the space weight is, the nearer the node to the cluster core is, and vice versa. The node with maximum weight is the central node of the cluster namely the space cluster core. For example, <xref ref-type="table" rid="t1-sensors-09-07177">Table 1</xref> shows the space weight vector of one cluster. The weights marked * belong to the cluster member. The node with maximum weight is (2, 2), for which <italic>W</italic>′<sub>(2,2)</sub> = 10 and so the node is the cluster space core.</p>
<p>If we establish the multicast tree for one cluster, only consider the space weight, the tree should be as the one shown in <xref ref-type="fig" rid="f2-sensors-09-07177">Figure 2</xref>.</p></sec>
<sec sec-type="methods">
<label>2.2.</label>
<title>The Data Weight Vector</title>
<p>Compared with the space weight vector, the data weight vector is easier obtain, as we can just define the date weight according to the date amount on the node directly [<xref ref-type="bibr" rid="b17-sensors-09-07177">17</xref>]. In <xref ref-type="table" rid="t2-sensors-09-07177">Table 2</xref>, the data weight vector is listed, in the cluster, the weights marked * belong to the cluster member. (In this table, 1 means 1T byte data or more.)</p>
<p>If we establish the multicast tree in one cluster, only consider the data weight, the tree should be in the way shown in <xref ref-type="fig" rid="f3-sensors-09-07177">Figure 3</xref>. But things are always not so easy, for each factor would maximize its own interest and on one hand they are in two completely separate systems, having themselves characteristics. And each factor would maximize its own interests [<xref ref-type="bibr" rid="b18-sensors-09-07177">18</xref>]. On other hand they co-exist in the real world, and are closely relative, constraint, and drawing a balance between each other. So we should try to find the general weight vector <italic>W</italic>, which can synthetically consider the space factor and data factor, therefore the system can get the optimal effect based on the game and balance for both of the space and data factors.</p></sec>
<sec>
<label>2.3.</label>
<title>The General Weight Vector</title>
<p>We define the general weight vector for one node as the function of space weight vector <italic>W</italic>′ and date weight vector <italic>W</italic>″, in the form of <italic>W</italic> = <italic>f</italic>(<italic>W</italic>′<italic>, W</italic>″). Now we know <italic>W</italic>′, <italic>W</italic>″, but do not know the expressions of <italic>f</italic>(). In other words, the function is still a black box, so we must find a way to change the black box to a white box. The relationship between the two vectors <italic>W</italic>′ and <italic>W</italic>″ can have various forms. We can start the step by discussing the most simple way: the linear relationship, which can represent the typical basic prototype of our real world. The space factors and data factors are independent with each other in the realistic sense, therefore these two vectors are linear unrelated, thus <italic>W</italic> = <italic>f</italic>(<italic>W</italic>′, <italic>W</italic>″) should be <italic>W</italic> = <italic>αW</italic>′ + <italic>βW</italic>″, where <italic>α</italic>, <italic>β</italic> are linear parameters.</p>
<p>Next, the question is how to calculate the linear parameters. We found one equation array to describe the problem for <italic>i</italic>-<italic>th</italic> cluster, based on game and balance theory illustrated next:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>Then the system can resolve the value of <italic>α</italic>, <italic>β</italic> by these equations, furthermore to get the general weight <italic>W</italic>.</p>
<p>Base on the weight vector <italic>W</italic>, we can construct the least weighted path tree next, namely the multicast tree, to transmit data, which would be the optimal path considering both of the space and data factor.</p></sec></sec>
<sec>
<label>3.</label>
<title>Algorithms for Game and Balance Multicast Architecture</title>
<sec>
<label>3.1.</label>
<title>Cluster Formation Algorithm</title>
<p>In the algorithms presented by this paper, the group members are initially split into several clusters by some management nodes (called as Rendezvous Points—RP). The cluster size is normally set as:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mn>3</mml:mn>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>The expression (<italic>k</italic>, 3<italic>k</italic> − 1) represents a random constant between <italic>k</italic> and 3<italic>k</italic> − 1. Like NICE, which is a hierarchical multicast technique that uses a fixed value k. The k is a constant, and in the simulation conducted in this paper, it is acceptable to use <italic>k</italic> = 3. The definition of cluster size is the same as the one of NICE, which is to avoid the frequent cluster splitting and merging [<xref ref-type="bibr" rid="b5-sensors-09-07177">5</xref>]. We define the state of node that has not been assigned into any cluster as unassigned. We describe the cluster formation as follows.</p>
<p>The RP initially selects the left lowest end host (say U) among all unassigned members. The left lowest node is the node that has the minimum coordinates along <italic>m</italic> dimensions among all nodes occupied by the unassigned group members. The cluster member selection is in the dimension order around U by using the following algorithm.</p>
<p><xref ref-type="fig" rid="f4-sensors-09-07177">Figure 4</xref> illustrates the spatial center nodes in a 2-<italic>D</italic> sensor grid. In this sensor grid, the initial left lower end host is (0, 0). According to Step 5, the RP firstly selects the end host in (0, 1) into the cluster. Because <italic>j</italic> = 0, Steps 8–11 are neglected. Then, the RP selects the end host in (1, 0)into the cluster by Steps 5–7. Based on Steps 8–11, the next selected cluster member is the one in (1, 1). The cluster formation guarantees that each cluster contains the closest group members in terms of static delay distance [<xref ref-type="bibr" rid="b19-sensors-09-07177">19</xref>]. According to the results in [<xref ref-type="bibr" rid="b20-sensors-09-07177">20</xref>], the scheme that assigns closed members into the same cluster will improve the scalability and efficiency of the multicast data transfers of the sensor grid.</p>
<table-wrap id="t4-sensors-09-07177" position="anchor">
<label>Algorithm 1:</label>
<caption>
<p>Cluster Formation</p></caption>
<graphic xlink:href="sensors-09-07177t1.gif"/></table-wrap></sec>
<sec>
<label>3.2.</label>
<title>Relative Weight Vectors Generation Algorithm</title>
<p>This sub-algorithm generates two weight vectors: the space weight vector and the data weight vector. In addition, the node with the maximum space weight is named the space core, and the node with the maximum date weight is named the data core. Hence it can be divided into four steps:</p>
<sec>
<label>A.</label>
<title>To find the space center nodes as the space core <bold><italic>C<sub>i,a</sub></italic></bold> in every cluster <bold><italic>C′<sub>i</sub></italic></bold></title>
<p>Each cluster will have a spatial center node as the space core. The space core can be the root of the tree in the cluster. The following theorem provides the sufficient and necessary conditions to select a spatial core in each cluster that is optimal in terms of the minimum sum of static delay distances to all the other cluster members.</p>
<p><bold>Theorem 1</bold> <italic>Let U be the cluster member that occupies the node</italic> (<italic>u</italic><sub>0</sub>, . . ., <italic>u<sub>j</sub></italic>, . . ., <italic>u</italic><sub><italic>m</italic>−1</sub>) <italic>in an m-D grid and n</italic> &gt; <italic>j,n</italic> &lt; <italic>j and n</italic> = <italic>j be the number of cluster members with the j-th coordinates larger than (right nodes of j-th row), less than (left nodes of j-th row), and equal to u<sub>j</sub> (the nodes just on j-th row) respectively. Then U is the spatial center node if and only if the following inequalities hold simultaneously:</italic>
<disp-formula id="FD2">
<label>(2)</label>
<mml:math display="block">
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&lt;</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&gt;</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>≤</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:math></disp-formula></p>
<p><bold>Proof:</bold>(⇒):Suppose <italic>U</italic> = (<italic>u</italic><sub>0</sub>, . . ., <italic>u<sub>j</sub></italic>, . . ., <italic>u</italic><sub><italic>m</italic>−1</sub>) is a spatial center node, and then to any member <italic>U</italic>′ in the sensor grid, there exists <italic>f</italic>(<italic>U</italic>) ≤ <italic>f</italic>(<italic>U</italic>′). To achieve (2), we firstly considers a node <italic>U</italic>′ = (<italic>u</italic><sub>0</sub>, . . ., <italic>u</italic><sub><italic>j</italic>+1</sub>, . . ., <italic>u</italic><sub><italic>m</italic>−1</sub>) and its multicast static delay distance <italic>f</italic>(<italic>U</italic>′). Given any member <italic>U<sub>i</sub></italic> = (<italic>u</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>u<sub>i,j</sub></italic>, . . ., <italic>u</italic><sub><italic>i,m</italic>−1</sub>) and <italic>u<sub>j</sub></italic> ≤ <italic>u<sub>i,j</sub></italic>, the distance from <italic>U<sub>i</sub></italic> to the end host <italic>U</italic> is one unit longer than the distance from <italic>U<sub>i</sub></italic> to the node <italic>U</italic>′. Similarly, it can be seen that to any member <italic>U<sub>i</sub></italic> = (<italic>u</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>u<sub>i,j</sub></italic>, . . ., <italic>u</italic><sub><italic>i,m</italic>−1</sub>) and <italic>u<sub>i,j</sub></italic> ≤ <italic>u<sub>j</sub></italic> the distance from <italic>U<sub>i</sub></italic> to the end host <italic>U</italic> is one unit shorter than the distance from <italic>U<sub>i</sub></italic> to <italic>U</italic>′. There exist (<italic>n</italic><sub>&gt;<italic>u<sub>j</sub></italic></sub> + <italic>n</italic><sub>=<italic>u</italic><sub><italic>j</italic></sub></sub>) members whose <italic>j</italic> − <italic>th</italic> coordinates are larger than or equal to <italic>u<sub>j</sub></italic>, and <italic>n</italic><sub>&lt;<italic>u</italic><sub><italic>j</italic></sub></sub> cluster members whose <italic>j</italic> − <italic>th</italic> coordinates are less than <italic>U<sub>j</sub></italic>, then it can be concluded that
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>≤</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>u</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:msubsup>
<mml:mo> </mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>u</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&gt;</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&gt;</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>≤</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. By comparing <italic>f</italic>(<italic>u</italic><sub>0</sub>, . . ., <italic>u</italic><sub><italic>j</italic>−1</sub>, . . ., <italic>u</italic><sub><italic>m</italic>−1</sub>) with <italic>f</italic>(<italic>U</italic>) in the same way as above, the inequality of 2 can be achieved.</p>
<p>(⇐): It is easy to demonstrate that if (2) is violated, and then <italic>U</italic> cannot be the spatial center nodes. Assume <italic>n</italic><sub>&gt;<italic>u</italic><sub><italic>j</italic></sub></sub> − <italic>n</italic><sub>&lt;<italic>u</italic><sub><italic>j</italic></sub></sub> &gt; <italic>n</italic><sub>=<italic>u</italic><sub><italic>j</italic></sub></sub>, then <italic>n</italic><sub>&gt;<italic>u</italic><sub><italic>j</italic></sub></sub> &gt; <italic>n</italic><sub>&lt;<italic>u</italic><sub><italic>j</italic></sub></sub> + <italic>n</italic><sub>=<italic>u</italic><sub><italic>j</italic></sub></sub>. Similarly, this paper firstly considers a node <italic>U</italic>′ = (<italic>u</italic><sub>0</sub>, . . ., <italic>u</italic><sub><italic>j</italic>+1</sub>, . . ., <italic>u</italic><sub><italic>m</italic>−1</sub>) and its multicast static delay distance <italic>f</italic>(<italic>U</italic>′). Given any member <italic>U<sub>i</sub></italic> = (<italic>u</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>u<sub>i,j</sub></italic>, . . ., <italic>u</italic><sub><italic>i,m</italic>−1</sub>) and <italic>u<sub>j</sub></italic> ≤ <italic>u<sub>i,j</sub></italic> the distance from <italic>U<sub>i</sub></italic> to the end host U is one unit longer than the distance from <italic>U<sub>i</sub></italic> to <italic>U</italic>′. Similarly, it can be seen that to any member <italic>U<sub>i</sub></italic> = (<italic>u</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>u<sub>i,j</sub></italic>, . . ., <italic>u</italic><sub><italic>i,m</italic>−1</sub>) and <italic>u<sub>i,j</sub></italic> ≤ <italic>u<sub>j</sub></italic> the distance from <italic>U<sub>i</sub></italic> to the node <italic>U</italic> is one unit shorter than the distance from <italic>U<sub>i</sub></italic> to <italic>U</italic>′.
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>u</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:msubsup>
<mml:mo> </mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>u</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo>&gt;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>&gt;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>→</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>&gt;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msup>
<mml:mi>u</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. Therefore the distance from <italic>U</italic> to these end hosts is larger than some other end hosts, which is a desired contradiction.</p>
<p>The physical meaning of the theory is obvious. Firstly, we process on <italic>X</italic> axis. For example <italic>N</italic><sub>=2</sub> = 4, namely there are 4 nodes just on of second row: (2, 6), (2, 4), (2, 2), (2, 1); <italic>N</italic><sub>&lt;2</sub> = 2, namely there are 2 nodes in the left of second row: (1, 3), (1, 1); <italic>N</italic><sub>&gt;2</sub> = 4, namely there are 4 nodes in the right of second row (3, 5), (3, 1), (5, 5), (5, 2), so |<italic>n</italic><sub>&lt;2</sub> − <italic>n</italic><sub>&gt;2</sub>| ≤ <italic>n</italic><sub>=2</sub>. Thus <italic>N</italic><sub>=2</sub> is satisfied coordinates on <italic>X</italic> axis. On other hand, <italic>N</italic><sub>=3</sub> = 2, including (3, 5), (3, 1); <italic>N</italic><sub>&lt;3</sub> = 6, including (2, 6), (2, 4), (2, 2), (2, 2), (1, 3), (1, 1); <italic>N</italic><sub>&gt;3</sub> = 2, including (5, 5), (5, 1), so |<italic>n</italic><sub>&lt;3</sub> − <italic>n</italic><sub>&gt;3</sub>| ≥ <italic>n</italic><sub>=3</sub>. Thus <italic>N</italic> = 3 is not satisfied coordinates. In the same way, we can do it again on <italic>Y</italic> axis. Then we can find the (2, 2) is the space central node, namely the space core of the cluster.</p></sec>
<sec>
<label>B.</label>
<title>To calculate the space weight vector of every node <bold><italic>W</italic>′<italic><sub>i,j</sub></italic></bold></title>
<p>At the beginning of this discussion, it can be presumed that the system establishes a multicast tree to transfer data packet, which choose the space core as the root and organize the architecture according to the space weight vector [<xref ref-type="bibr" rid="b21-sensors-09-07177">21</xref>]. It is anticipated that the tree should maximize the sharing of link utilization within the clusters so that the rest of the links may be used for other traffic [<xref ref-type="bibr" rid="b22-sensors-09-07177">22</xref>]. Our approach is to connect all the members according to (1) the branch on the tree between two adjacent members is the shortest path in the cluster, (2) the total number of links on the tree should also be minimized. Before discussing the algorithm, it is necessary to define the following terminologies (using a 2-<italic>D</italic> cluster as the model):
<list list-type="order">
<list-item>
<p><bold>Shortest path area nodes (SPAN):</bold> For any two nodes (<italic>x</italic><sub>0</sub>, <italic>y</italic><sub>0</sub>) and (<italic>x</italic><sub>1</sub>, <italic>y</italic><sub>1</sub>), let <italic>X<sub>min</sub></italic> = <italic>min</italic>{<italic>x</italic><sub>0</sub>, <italic>x</italic><sub>1</sub>}, <italic>X<sub>max</sub></italic> = <italic>max</italic>{<italic>x</italic><sub>0</sub>, <italic>x</italic><sub>1</sub>}, <italic>Y<sub>min</sub></italic> = <italic>min</italic>{<italic>y</italic><sub>0</sub>, <italic>y</italic><sub>1</sub>} and <italic>Y<sub>max</sub></italic> = <italic>max</italic>{<italic>y</italic><sub>0</sub>, <italic>y</italic><sub>1</sub>}. They uniquely define a rectangle area [<italic>x</italic><sub>0</sub>, <italic>y</italic><sub>0</sub>] × [<italic>x</italic><sub>1</sub>, <italic>y</italic><sub>1</sub>]. Each node (<italic>x</italic>, <italic>y</italic>) in [<italic>x</italic><sub>0</sub>, <italic>y</italic><sub>0</sub>] × [<italic>x</italic><sub>1</sub>, <italic>y</italic><sub>1</sub>], which is on one of the shortest paths between (<italic>x</italic><sub>0</sub>, <italic>y</italic><sub>0</sub>) and (<italic>x</italic><sub>1</sub>, <italic>y</italic><sub>1</sub>), so it is called the shortest path area nodes (SPAN) between (<italic>x</italic><sub>0</sub>, <italic>y</italic><sub>0</sub>) and (<italic>x</italic><sub>1</sub>, <italic>y</italic><sub>1</sub>).</p></list-item>
<list-item>
<p><bold>SPAN nodes of a cluster member:</bold> When the tree is built in the cluster with the size of <italic>n</italic>, all nodes <italic>C<sub>j</sub></italic>(<italic>x<sub>j</sub></italic>, <italic>y<sub>j</sub></italic>) in the SPAN area [<italic>x</italic><sub>0</sub>, <italic>y</italic><sub>0</sub>] × [<italic>x<sub>i</sub></italic>, <italic>y<sub>i</sub></italic>] from the core (i.e., the root of the tree)<italic>c</italic>*(<italic>x</italic>*, <italic>y</italic>*) to a cluster member <italic>c<sub>i</sub></italic>(<italic>x<sub>i</sub></italic>, <italic>y<sub>i</sub></italic>)(<italic>i</italic> ∈ [0, <italic>n</italic> − 1])can be regarded as the SPAN nodes of <italic>c<sub>i</sub></italic>. Take <xref ref-type="fig" rid="f5-sensors-09-07177">Figure 5</xref> as an example. Assume that the core is in the node (2, 2). All nodes in [2, 2] × [5, 5]are the SPAN nodes of this cluster member.</p></list-item>
<list-item>
<p><bold>The space weight of the node:</bold> A node may be the SPAN node of several <italic>k</italic> cluster members. If a node is the SPAN node of <italic>k</italic> cluster members, this node is assigned the weight of <italic>k</italic>. <xref ref-type="table" rid="t1-sensors-09-07177">Table 1</xref> gives the space weights of all nodes in <xref ref-type="fig" rid="f4-sensors-09-07177">Figure 4</xref>. Taking the node (2, 4) as an example, as show in <xref ref-type="fig" rid="f5-sensors-09-07177">Figure 5</xref>. The node (2, 4) is 4 node’s Shortest Path Area Nodes (SPAN): (2, 6), (3, 5), (5, 5), (2, 4), because it is in the Shortest Path Area of these nodes. Therefore its weight 4 means that 4 cluster members may pass through node (2, 4) to the cluster core (2, 2) by the shortest paths. Apparently, the weight of (2, 2) is 10.</p></list-item></list></p>
<p>In general, if the space weight of the node is <italic>k</italic>, it means that there are <italic>k</italic> nodes which must pass this node to the space core to send packets, which represent the degree near the center. The greater the space weight is, the nearer the node to the cluster core is, and vice versa.</p></sec>
<sec sec-type="methods">
<label>C.</label>
<title>To find the data weight <bold><italic>W</italic>″</bold> of every node in cluster <bold><italic>C<sub>i</sub></italic></bold></title>
<p>After figuring out the space weight vector <italic>W</italic>′<italic><sub>i,j</sub></italic>, the system can easily get the data quantity in every node, namely generating the data weight, because the data quantity vector is determinant, as shown in <xref ref-type="table" rid="t2-sensors-09-07177">Table 2</xref>.</p></sec>
<sec sec-type="methods">
<label>D.</label>
<title>To find the maximal data quantity node in <bold><italic>W</italic>″<italic><sub>i,j</sub></italic></bold> as the data core <bold><italic>c<sub>i,b</sub></italic></bold> in every cluster</title>
<p>According to the <xref ref-type="table" rid="t2-sensors-09-07177">Table 2</xref>, because the node <italic>B</italic>(2, 1) is the maximal value 10, it is the data core.</p>
<p>The relatively Weighted Vectors Generation algorithm in the <italic>m</italic>-<italic>D</italic> Sensor grid is given in <xref ref-type="table" rid="t5-sensors-09-07177">Algorithm 2</xref>.</p>
<table-wrap id="t5-sensors-09-07177" position="anchor">
<label>Algorithm 2:</label>
<caption>
<p>Relative Weighted Vectors Generation</p></caption>
<graphic xlink:href="sensors-09-07177t2a.gif"/>
<graphic xlink:href="sensors-09-07177t2b.gif"/></table-wrap>
<p>In <xref ref-type="table" rid="t5-sensors-09-07177">Algorithm 2</xref>, Steps 4–7 can be executed in time O(n). Steps 9–18 can be improved by using binary searching algorithm that yields an O(ln(n)) complexity. But for the brevity of discussion, it is necessary to keep the linear search algorithm here. The algorithm may find out multiple spatial central nodes, but just choose one of them at random and others can be back-ups. <xref ref-type="fig" rid="f4-sensors-09-07177">Figure 4</xref> illustrates the spatial center nodes (2, 2) selection in one cluster of 2-<italic>D</italic> sensor grid. It is known that the spatial center node should be in the area [1, 1] × [5, 6]. Therefore, it can be checked that the spatial center node’s <italic>x</italic> coordinate must be 2 while <italic>y</italic> coordinate could be 2 or 3 for <italic>f</italic>((2, 2)) = <italic>f</italic>((2, 3)) = 26. Node (2, 2) is the member and is preferential (2, 3).</p>
<p>In the sensor grid, the data quantities of nodes are very different, for instance, about 20% nodes process 80% of the data quantity of the whole system. These nodes are very important in the multicast data transfer, therefore when researching the algorithm in multicast, the node’s data quantity weight <italic>W</italic>″ should be taken into account. On the other hand, the spatial nodes weight <italic>W</italic>′ in the <xref ref-type="table" rid="t6-sensors-09-07177">Algorithm 3</xref> (Least Weighted Path Tree Generation) should be noticed too. The relationship between the two vectors is a very challenging question, we tried in this paper to begin from the linear relative between them.</p>
<p>In general, the Relative Weighted Vectors Generation algorithm, finds the spatial core <italic>c<sub>i,a</sub></italic> in every cluster <italic>C<sub>i</sub></italic>, calculates the space weight of every node <italic>W</italic>′<italic><sub>i,j</sub></italic>, searches the data quantity weight of the very node <italic>W</italic>″<italic><sub>i,j</sub></italic> in cluster <italic>C<sub>i</sub></italic>, and finally finds the data core <italic>c<sub>i,b</sub></italic>.</p></sec></sec>
<sec>
<label>3.3.</label>
<title>Least Weighted Path Tree Generation Algorithm</title>
<p>After the Relative Weighted Vectors Generation algorithm generates the space weight vector <italic>W</italic>′ and the data weight vector <italic>W</italic>″, and the spatial core <italic>c<sub>i,a</sub></italic> and the data core <italic>c<sub>i,b</sub></italic>, the Least Weighted Path Tree Generation algorithm wants to combine the two old weight vectors <italic>W</italic>′ and <italic>W</italic>″ to a new weight vector <italic>W</italic>. Now the system just knows <italic>W</italic> = <italic>f</italic>(<italic>w</italic>′, <italic>w</italic>″), but does not know the expression of the <italic>f</italic>(). As we mentioned in Section 2.3., we used the linear form: <italic>W</italic> = <italic>αW</italic>′ + <italic>βW</italic>″. After that the sub-algorithm builds binary simple equations, resolves linear parameters <italic>α</italic>, <italic>β</italic>, generates new weight vector <italic>W</italic>. At last generates the least weighted path tree as hierarchical multicast tree. The sub-algorithm can be divided into 5 steps:</p>
<sec>
<label>A.</label>
<title>To define the weights of the nodes</title>
<disp-formula id="FD3">
<label>(3)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow></mml:math></disp-formula>
<list list-type="simple">
<list-item>
<p><italic>W<sub>i,j</sub></italic> : The weights of the nodes;</p></list-item>
<list-item>
<p><italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic>: Linear relation modulus, <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> ∈ <italic>r</italic>; <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> ≥ 0, as <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> &lt; 0 nonsense;</p></list-item>
<list-item>
<p><italic>W</italic>′<italic><sub>i</sub></italic> : The space weight vector.</p></list-item>
<list-item>
<p><italic>W</italic>″<italic><sub>i</sub></italic>: The data weight vector.</p></list-item></list></sec>
<sec>
<label>B.</label>
<title>The linear relation modulus of the weight of the node satisfied</title>
<disp-formula id="FD4">
<label>(4)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>&lt;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>∈</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p><bold>Theorem 2</bold> <italic>If, two linear no-relationship vector W′<sub>i</sub>, W″<sub>i</sub>, their linear combination W<sub>i,j</sub></italic> = <italic>α<sub>i</sub>W′<sub>i,j</sub></italic> + <italic>β<sub>i</sub>W″<sub>i,j</sub>, α<sub>i</sub>, β<sub>i</sub> is linear relation modulus, α<sub>i</sub>, β<sub>i</sub></italic> ∈ <italic>r, α<sub>i</sub>, β<sub>i</sub></italic> ≥ 0<italic>, then following express is satisfied:</italic>
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>&lt;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>&lt;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>∈</mml:mo>
<mml:mi>r</mml:mi></mml:mrow></mml:math></disp-formula></p>
<p><bold>Proof:</bold> <italic>The rationality of the equation is obvious:</italic>
<list list-type="simple">
<list-item>
<p><italic>Let</italic> 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>∈</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>≥</mml:mo>
<mml:mn>0</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
<p>
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></p></list-item>
<list-item>
<p><italic>Take</italic> 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>,
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>,
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><italic>Then W<sub>i,j</sub></italic> = <italic>α<sub>i</sub>W′<sub>i,j</sub></italic> + <italic>β<sub>i</sub>W</italic>″<italic><sub>i,j</sub>, and α<sub>i</sub></italic> + <italic>β<sub>i</sub></italic> = 1, 0 &lt; <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> &lt; 1, <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> ∈ <italic>r</italic></p></list-item></list></p></sec>
<sec sec-type="methods">
<label>C.</label>
<title>The space factor and data factor are game and balance with each other, the game balance point is</title>
<disp-formula id="FD5">
<label>(5)</label>
<mml:math display="block">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>
<p><bold>Theorem 3</bold> <italic>If two linear no-relationship vector, W</italic>′<italic><sub>i</sub></italic> = (<italic>w</italic>′<sub><italic>i</italic>,0</sub>, . . ., <italic>w</italic>′<italic><sub>i,j</sub></italic>, . . ., <italic>w</italic>′<sub><italic>i,m</italic>−1</sub>), <italic>W</italic>″<italic><sub>i</sub></italic> = (<italic>w</italic>″<sub><italic>i</italic>,0</sub>, . . ., <italic>w</italic>″<italic><sub>i,j</sub></italic>, . . ., <italic>w</italic>″<sub><italic>i,m</italic>−1</sub>) <italic>their linear combination W<sub>i</sub></italic> = (<italic>w</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>w<sub>i,j</sub></italic>, . . ., <italic>w</italic><sub><italic>i,m</italic>−1</sub>), <italic>and W<sub>i</sub></italic> = <italic>α<sub>i</sub>W′<sub>i</sub></italic> + <italic>β<sub>i</sub>W″<sub>i</sub></italic>, <italic>α<sub>i</sub>, β<sub>i</sub> is linear relation modulus, α<sub>i</sub>, β<sub>i</sub></italic> ∈ <italic>r, α<sub>i</sub>, β<sub>i</sub></italic> ≥ 0. <italic>The game balance point of W</italic>′<italic><sub>i</sub> and W</italic>″<italic><sub>i</sub> is</italic> 
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>.</p>
<p><bold>Proof:</bold> <italic>Because W</italic>′<italic><sub>i</sub></italic> = (<italic>w</italic>′<sub><italic>i</italic>,0</sub>, . . ., <italic>w</italic>′<italic><sub>i,j</sub></italic>, . . ., <italic>w</italic>′<sub><italic>i,m</italic>−1</sub>), <italic>W</italic>″<italic><sub>i</sub></italic> = (<italic>w</italic>″<sub><italic>i</italic>,0</sub>, . . ., <italic>w</italic>″<italic><sub>i,j</sub></italic>, . . ., <italic>w</italic>″<sub><italic>i,m</italic>−1</sub>) <italic>their linear combination W<sub>i</sub></italic> = (<italic>w</italic><sub><italic>i</italic>,0</sub>, . . ., <italic>w<sub>i,j</sub></italic>, . . ., <italic>w</italic><sub><italic>i,m</italic>−1</sub>), <italic>and W<sub>i</sub></italic> = <italic>α<sub>i</sub>W′<sub>i</sub></italic> + <italic>β<sub>i</sub>W″<sub>i</sub>, as show in <xref ref-type="fig" rid="f6-sensors-09-07177">Figure 6</xref>.</italic></p>
<p><italic>Because</italic> 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi mathvariant="italic">cos</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>⋅</mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>, 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi mathvariant="italic">cos</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>⋅</mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>, <italic>we want to find the game and balance point to make θ</italic><sub>1</sub>=<italic>θ</italic><sub>2</sub>, <italic>then cosθ</italic><sub>1</sub>=<italic>cosθ</italic><sub>2</sub>.</p>
<p><italic>On other words, the game balance point between W′<sub>i</sub> and W″<sub>i</sub> should be the point that has the equal correlation coefficient to each of the vectors. That is to say:</italic> 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>⋅</mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>⋅</mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>, <italic>then we get:</italic> 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>.</p>
<p>Combining (4) and (5), the paper builds the liner binary simple equations:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>For <italic>W<sub>i</sub></italic> = <italic>α<sub>i</sub>W′<sub>i</sub></italic> + <italic>β<sub>i</sub>W″<sub>i</sub></italic>
<disp-formula>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo> </mml:mo>
<mml:mtext>then</mml:mtext></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo> </mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo> </mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo> </mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo> </mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup>
<mml:mo> </mml:mo>
<mml:mo>⋅</mml:mo>
<mml:mo> </mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>For <italic>α<sub>i</sub></italic> + <italic>β<sub>i</sub></italic> = 1, then
<disp-formula>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt>
<mml:mo>+</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt>
<mml:mo>+</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>So: 0 &lt; <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> &lt; 1, <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> ∈ <italic>r</italic></p>
<p>According to the above data table, the algorithm figures out <italic>α<sub>i</sub></italic> = 0.53, <italic>β<sub>i</sub></italic> = 0.47.</p></sec>
<sec>
<label>D.</label>
<title>To get the weight vector and choose the maximum value node as the cluster core</title>
<p>According to the above all, the algorithm gets the weight vector (as <xref ref-type="table" rid="t3-sensors-09-07177">Table 3</xref>) and chooses the maximum value node as the cluster core
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>C</mml:mi></mml:mrow>
<mml:mo>*</mml:mo></mml:msup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>*</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, in this cluster it chooses (2, 1) as cluster core <italic>c<sub>i</sub></italic>.</p></sec>
<sec>
<label>E.</label>
<title>Path Weight:</title>
<p>Given a shortest path, the path weight is the sum of all on-path node weights. For example, the weight of path &lt; (2, 2), (2, 3), . . ., (2, 5), . . ., (5, 5) &gt; is ∑<italic><sub>i</sub> α<sub>i</sub>W</italic>′<italic><sub>i</sub></italic> + ∑<italic><sub>i</sub> β<sub>i</sub>W</italic>″<italic><sub>i</sub></italic>.</p>
<p>Let the cluster with <italic>n</italic>′ members be:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mi>C</mml:mi></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi></mml:mrow>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula></p>
<p>After obtaining the space weight vector <italic>W</italic>′, the data weight vector <italic>W</italic>″, the spatial core <italic>c<sub>i,a</sub></italic> and the data core <italic>c<sub>i,b</sub></italic>, the paper will calculate the weight vector <italic>W</italic> and the cluster core
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>c</mml:mi></mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>*</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p>
<p>The main idea of the least weighted path tree generation algorithm can be sketched as follows. After obtaining the space weight vector and the data quantity weight vector, we tried to find a new vector composed by linear combination of the two old ones. And it builds binary simple equations between them, seeks linear parameters. Then they generate a least weighted path tree, namely multicast tree. The least weighted path tree generation algorithm is shown in <xref ref-type="table" rid="t6-sensors-09-07177">Algorithm 3</xref>.</p>
<table-wrap id="t6-sensors-09-07177" position="anchor">
<label>Algorithm 3:</label>
<caption>
<p>Least Weighted Path Tree Generation.</p></caption>
<graphic xlink:href="sensors-09-07177t3.gif"/></table-wrap>
<p>For example: in the cluster, the spatial center node is <italic>A</italic>(2, 2), and the maximal data quantity node is <italic>B</italic>(2, 1). For the requirement of practice, in this cluster, let
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>, and <italic>α<sub>i</sub></italic> + <italic>β<sub>i</sub></italic> = 1. To resolve the liner binary simple equations, the paper gets the liner relation modulus <italic>α<sub>i</sub></italic>, <italic>β<sub>i</sub></italic> = <italic>f</italic>(<italic>W</italic>′<italic><sub>i</sub>, W</italic>″<italic><sub>i</sub></italic>), then gets <italic>α<sub>i</sub></italic> = 0.53, <italic>β<sub>i</sub></italic> = 0.47. At last, the algorithms attain new weight vector <italic>W</italic>.</p>
<p>Notice that since the dimension of the space weight vector and the data quantity weight vector may be different, the data quantity weight vector may stem from a function of the nature data quantity.</p></sec></sec>
<sec>
<label>3.4.</label>
<title>Multicast Routing Algorithm</title>
<p>Firstly, the network is partitioned into clusters by some regular Sensor grid area; after group members are divided into different clusters, a tree is built to connect the cluster members in each cluster; at last, the connection among different clusters is done through hooking the tree roots.</p>
<table-wrap id="t7-sensors-09-07177" position="anchor">
<label>Algorithm 4:</label>
<caption>
<p>Multicast routing for group G</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td align="left" valign="top"><bold>1</bold> Hence <italic>s</italic> sends its multicast messages to its cluster core <italic>c</italic><sub>0</sub>.<break/><bold>2</bold> The cluster core <italic>c</italic><sub>0</sub> sends them to all other cores <italic>c<sub>i</sub></italic><break/><bold>3</bold> The cluster core <italic>c</italic><sub>0</sub> routes the multicast packets to its own cluster members along the cluster tree.<break/><bold>4</bold> At the same time, all cluster cores <italic>c<sub>i</sub></italic>, upon receiving the multicast messages, transmit them along the cluster trees to all cluster members <italic>m<sub>i</sub></italic> within the clusters.</td></tr></tbody></table></table-wrap></sec></sec>
<sec>
<label>4.</label>
<title>Performance Evaluation</title>
<sec>
<label>4.1.</label>
<title>The Model of Simulation</title>
<p>We evaluated the newly-proposed optimal hierarchical multicast algorithms with the simulation developed by C++ [<xref ref-type="bibr" rid="b23-sensors-09-07177">23</xref>] and run by a group of 40 IBM double cores PC. And we chose three multicast routing approaches for 2-<italic>D</italic> Sensor grid used for the performance testing and comparison: SPACE which just considers space factor; DATA which just considers data factor; and GBMASG which synthetically considers space and data factors. Moreover in multicast technology, for the space factor, there are several multicast routing algorithms, for example Double-Channel XY Multicast Wormhole Routing (DCXY) [<xref ref-type="bibr" rid="b20-sensors-09-07177">20</xref>], Dual-Path Multicast Routing (DPM) [<xref ref-type="bibr" rid="b24-sensors-09-07177">24</xref>], RCWP, OCXYP, RCXYP, etc. Among these approaches, the DCXYP is the most popular, the routing way just as our SPACE approach. Here we use DATA aprcoch according to data weight vector to generate least weight path tree.</p>
<p>In the simulation environment, the network topology used in the simulation is a 2-<italic>D</italic> Sensor grid. The bandwidth of each link is 10 Mbps [<xref ref-type="bibr" rid="b25-sensors-09-07177">25</xref>]. During the simulation, 1,000 and 1,000,000 multicast packets are randomly generated as time seed and the average size of the packets is 2,400 bytes so that the average time to transmit a packet on the defined link is about 1 ms [<xref ref-type="bibr" rid="b26-sensors-09-07177">26</xref>]. The following two metrics are employed to evaluate these multicast schemes: <bold>Average multicast delay:</bold> Defining the message multicast delay at a node as the sum of the routing delay, queuing delay and transmission delay. The average multicast delay AD is computed by
<disp-formula id="FD6">
<label>(6)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi mathvariant="italic">AD</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:munderover>
<mml:mo> </mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>/</mml:mo>
<mml:mi>n</mml:mi></mml:mrow></mml:math></disp-formula>where <italic>d</italic>(<italic>s</italic>, <italic>u<sub>i</sub></italic>) is the packet delay from the source <italic>s</italic> to the member <italic>u<sub>i</sub></italic> and <italic>n</italic> is the group size.</p>
<p><bold>Number of links used:</bold> It refers to the total number of links used in G in order to multicast the messages to all group members.</p></sec>
<sec>
<label>4.2.</label>
<title>The Result of Simulation</title>
<p>The average delay metric under the light and heavy load of network is shown in <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(a),(b)</xref>. The link usage for different algorithms under the light and heavy load of network is shown in <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(c),(d)</xref>. It can be seen that the average delay increases with the increase of the network load <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(e)</xref> and once it surpasses one point the the average delay will increase rapidly. From these simulation results, it can be obtained the following observations:
<list list-type="order">
<list-item>
<p>Under the light load circumstance, the delay is mainly decided by the distance from the source to the group members <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(a)</xref>. The SPACE approach always transmits multicast packets to group members along the shortest paths from the source to the group members, therefore it achieves the best delay performance among the other systems when the network is lightly loaded. When the traffic is low, GBMASG achieves as good delay performance as SPACE, but with a little bit difference. DATA’s performance is not very good for light load.</p></list-item>
<list-item>
<p>Under a heavy load circumstance, the delay is mainly decided by the source of the data quantity, and certainly relates to the space of the nodes too <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(b)</xref>. In the sensor grid circumstance, a majority of data quantity will concentrate in minor nodes. Now that SPACE just generate the multicast tree according to space factor, so that the delay increases a little rapidly in the mass data quantity. Our approach GBMASG synthetically considers both data and space factors, so that it gets the best result. DATA achieves the quite well delay performance almost as GBMASG here <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(b)</xref>.</p></list-item>
<list-item>
<p><xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(c),(d)</xref> show the average number of links used by these approaches. In general the number of links will be increased with the number of the group members. At light load, the delay is mainly decided by the distance from the source to the group members <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(c)</xref>. Therefore SPACE achieves the least the number of links compared with other approach when the network is lightly loaded. GBMASG is in middle and approaching SPACE, but DATA is not very good.</p></list-item>
<list-item>
<p>At heavy load, the number of links is mainly decided by both the source of the data quantity and the space of the node <xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(d)</xref>. So that for SPACE the number of links increases rapidly in the mass data quantity, and the DATA is much better, at last our approach GBMASG get the least the number of links.</p></list-item>
<list-item>
<p><xref ref-type="fig" rid="f7-sensors-09-07177">Figure 7(e)</xref> shows that the delay increases as the packet arrival-rate increases. The system saturation points for SPACE, DATA and GBMASG are about 35, 36 and 38 packets/ms respectively. Our algorithm GBMASG achieves the maximum throughput.</p></list-item></list></p>
<p>It reveals that under the same condition, GBMASG obtains the best balance over the performance parameters, i.e., the less resource a system consumes, the higher the throughput and the shorter the delay under heavy traffic load [<xref ref-type="bibr" rid="b27-sensors-09-07177">27</xref>]. The GBMASG is especially suitable for sensor grid with large data quantity.</p></sec></sec>
<sec sec-type="conclusions">
<label>5.</label>
<title>Conclusions and Future Work</title>
<sec sec-type="conclusions">
<label>5.1.</label>
<title>Conclusions</title>
<p>A sensor grid integrates wireless sensor networks with grid infrastructures to enable real-time sensor data collection and the sharing of computational and storage resources for sensor data processing and management. It is an enabling technology for building large-scale infrastructures. When the system constructs the hierarchical tree, it should consider not only the factor of the space, but also the data quantity. Their relationship is game and balance. We tried to draw an elaborate balance between them, and uses the basic idea to construct the hierarchical multicast tree in this paper.</p>
<p>The network is partitioned into clusters in terms of the static delay distance of Sensor grid area. After group members are initially scattered into different clusters, a tree is built to connect the cluster members with each other. The connection among different clusters is done through hooking the tree roots. To construct such architecture, a set of novel algorithms based on the <italic>m</italic>-<italic>D</italic> sensor grid are composed of four sub-algorithms:
<list list-type="order">
<list-item>
<p>Cluster formation algorithm. It divides the group members into different clusters in terms of static delay distance;</p></list-item>
<list-item>
<p>Relative weight vectors generation algorithm. It figures out two weight vectors: the space weight vector <italic>W</italic>′ and the data weight vector <italic>W</italic>″. In addition, it generates the spatial core <italic>C<sub>i,a</sub></italic>, which is the node with the maximum space weight node, and the data core <italic>C<sub>i,b</sub></italic>, which is the node with the maximum space weight node also.</p></list-item>
<list-item>
<p>Least weighted path tree algorithm. After the Relative Weighted Vectors Generation algorithm generates the space weight vector <italic>W</italic>′ and the data weight vector <italic>W</italic>″, and the data core <italic>C<sub>i,a</sub></italic> and the spatial core <italic>C<sub>i,b</sub></italic>, the sub-algorithm wants to combine the two old weight vectors <italic>W</italic>′ and <italic>W</italic>″ to a new weight vector <italic>W</italic>. But the system just knows <italic>W</italic> = <italic>f</italic>(<italic>W</italic>′, <italic>W</italic>″), but does not know the expression of the <italic>f</italic>(). The relationship between the two vectors <italic>W</italic>′ and <italic>W</italic>″ can have various forms. We can start the step by discussing the most simple way: the linear relationship, which can represent the typical basic prototype of our real world: <italic>W</italic> = <italic>αW</italic>′ + <italic>βW</italic>″. After that, the sub-algorithm builds binary simple equations, resolves linear parameters <italic>α</italic>, <italic>β</italic>, generates new weight vector <italic>W</italic>. At last generates the least weighted path tree as multicast tree.</p></list-item>
<list-item>
<p>Multicast Routing Algorithm. Firstly, the network is partitioned into clusters in terms of some regular sensor grid area. After group members are initially scattered into different clusters, a tree is built to connect the cluster members within each cluster. At last, the connection among different clusters is done through hooking the tree roots to implement the inter-cluster routing.</p></list-item></list></p></sec>
<sec>
<label>5.2.</label>
<title>Future Work</title>
<sec>
<label>1.</label>
<title>To extend the multicast algorithm from <bold>2-<italic>D</italic></bold> to <bold>3-<italic>D</italic></bold> space</title>
<p>At present, the algorithm in this paper mostly focuses on optimal data transfer strategy in 2-<italic>D</italic> space. The reason is that recently mostly applications are still limited within 2-<italic>D</italic>. With the development of technology, Sensor grid architecture steps into outer space, into 3-<italic>D</italic>.</p></sec>
<sec sec-type="methods">
<label>2.</label>
<title>To extend the data quantity weight vector <bold><italic>W</italic>″</bold></title>
<p>In the paper the space weight vector is complex, but the data quantity weight vector is definite, therefore the system can gain it directly. However, in some situation the data quantity could be changing, so that we should study special sub-algorithm for it. For example, in Pervasive Computing, the data quantity weight vector is not definite, therefore it is a function: <italic>W</italic>″ = <italic>f</italic>(<italic>x</italic>).</p></sec>
<sec>
<label>3.</label>
<title>To discuss the non-linear relationship of two vectors <bold><italic>W</italic>′</bold> and <bold><italic>W</italic>″</bold></title>
<p>Moreover, we just discussed about the liner relationship of two vectors in this paper. On the other level, the above method can just resolve the linear relationship of two vectors. But, in practice, the system sometimes does not transform linearly but exponentially. The paper can resolve one exponential equation in the situation. For example, we can define the nodes weights as
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mo>″</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula>. In the meantime the system can use some other methods to control, such as controlling theory method, differential method, etc.</p></sec>
<sec>
<label>4.</label>
<title>To extend to 3 vectors correlation</title>
<p>Furthermore, after discussed two vectors correlation: the space weight vector and data weight vector, the paper can easily be extended to three weight vectors correlation, for instance the economy weight vector. In this situation, the costs of server in different place vary, therefore the clients prefer the node with cheaper cost. Therefore the system should take the economy factor into account, while constructing multicast tree. The three weight vectors are game and balance with each other. The relationship of the weight should be <italic>W<sub>i,j</sub></italic> = <italic>α<sub>i</sub>W</italic>′<italic><sub>i,j</sub></italic> + <italic>β<sub>i</sub>W</italic>″<italic><sub>i,j</sub></italic> + <italic>λ<sub>i</sub>W</italic>″′<italic><sub>i,j</sub></italic>. And it can easily extend the equation array as
<disp-formula id="FD7">
<label>(7)</label>
<mml:math display="block">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>β</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>γ</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>″</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>‴</mml:mo></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi>
<mml:mo>‴</mml:mo></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p></sec>
<sec>
<label>5.</label>
<title>To extend to N-vectors correlation</title>
<p>After discussing two and three vectors correlation, the algorithm can be extended to N-vectors correlation. Because in the realistic world, people should consider a number of factors while constructing the multicast tree, for example: space, data, economy, politics, military, etc. In this mode, every factor is a vector. As long as the physic mean of different factor is independent, the weight vector is linear (non-relative). Even if the two vectors are linear related, there are the ways to turn it to be linear (non-relative). All these factors can be denoted by a series of weight vectors. All of them game and balance with each other.</p>
<p>The relationship of the weight can be defined as
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi></mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>. And the equation can be extended to
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>…</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac>
<mml:mo>…</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>⋅</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>W</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>It can be solved by mathematical induction.</p>
<p>Moreover, these factors are based on linear non-relationship condition, so their cardinal number is accountable infinite. But in realty many factors are linear relationship, so that we can turn these to be linear non-relationship. If factors are of linear relationship, then their cardinal number is unaccountable infinite.</p></sec></sec></sec></body>
<back>
<ack>
<p>The authors acknowledge Professor Weijia Jia of Department of Computer Science, City University of Hong Kong. The authors acknowledge partial financial support form the SAP Business Objects company.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-09-07177"><label>1.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Duff</surname><given-names>R.</given-names></name><name><surname>Khamra</surname><given-names>Y.E.</given-names></name></person-group><article-title>A sensor and computation grid enabled engineering model for drilling vibration research</article-title><conf-name>MG ’08: Proceedings of the 15th ACM Mardi Gras conference</conf-name><conf-loc>Baton Rouge, Louisiana, USA</conf-loc><conf-date>January 29–February 03, 2008</conf-date><fpage>153</fpage></citation></ref>
<ref id="b2-sensors-09-07177"><label>2.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Iqbal</surname><given-names>M.</given-names></name><name><surname>Lim</surname><given-names>H.B.</given-names></name></person-group><article-title>A sensor grid infrastructure for large-scale ambient intelligence</article-title><conf-name>PDCAT ’08: Proceedings of the 2008 Ninth International Conference on Parallel and Distributed Computing, Applications and Technologies</conf-name><conf-loc>Dunedin, New Zealand</conf-loc><conf-date>December 1–4, 2008</conf-date><fpage>468</fpage><lpage>473</lpage></citation></ref>
<ref id="b3-sensors-09-07177"><label>3.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bernstein</surname><given-names>P.A.</given-names></name><name><surname>Fekete</surname><given-names>A.</given-names></name><name><surname>Guo</surname><given-names>H.</given-names></name><name><surname>Ramakrishnan</surname><given-names>R.</given-names></name><name><surname>Tamma</surname><given-names>P.</given-names></name></person-group><article-title>Relaxed-currency serializability for middle-tier caching and replication</article-title><conf-name>SIGMOD ’06: Proceedings of the 2006 ACM SIGMOD international conference on Management of data</conf-name><conf-loc>Chicago, IL, USA</conf-loc><conf-date>June 27–29, 2006</conf-date><fpage>599</fpage><lpage>610</lpage></citation></ref>
<ref id="b4-sensors-09-07177"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pompili</surname><given-names>D.</given-names></name><name><surname>Lopez</surname><given-names>L.</given-names></name><name><surname>Scoglio</surname><given-names>C.</given-names></name></person-group><article-title>DIMRO, a DiffServ-integrated multicast algorithm for Internet resource optimization in source specific multicast applications</article-title><source>IEICE Trans. Commun</source><year>2004</year><volume>2</volume><fpage>1146</fpage><lpage>1150</lpage></citation></ref>
<ref id="b5-sensors-09-07177"><label>5.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Banerjee</surname><given-names>S.</given-names></name><name><surname>Bhattacharjee</surname><given-names>B.</given-names></name><name><surname>Kommareddy</surname><given-names>C.</given-names></name></person-group><article-title>Scalable application layer multicast</article-title><conf-name>Proceedings ACM SIGCOMM</conf-name><conf-loc>Pittsburgh, Pennsylvania, USA</conf-loc><conf-date>August 19–23, 2002</conf-date><fpage>1389</fpage><lpage>1400</lpage></citation></ref>
<ref id="b6-sensors-09-07177"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname><given-names>S.</given-names></name><name><surname>Shi</surname><given-names>B.</given-names></name></person-group><article-title>ACOM: Any-source Capacity-constrained Overlay Multicast in Non-DHT P2P Networks</article-title><source>IEEE Trans. Paral. Dis. Sys</source><year>2007</year><volume>18</volume><fpage>205</fpage><lpage>217</lpage></citation></ref>
<ref id="b7-sensors-09-07177"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhuge</surname><given-names>H.</given-names></name></person-group><article-title>A Scalable P2P Platform for the Knowledge Grid</article-title><source>IEEE Trans. Know. Da. Eng</source><year>2005</year><volume>17</volume><fpage>1721</fpage><lpage>1736</lpage><pub-id pub-id-type="doi">10.1109/TKDE.2005.190</pub-id></citation></ref>
<ref id="b8-sensors-09-07177"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Nakao</surname><given-names>A.</given-names></name><name><surname>Peterson</surname><given-names>L.</given-names></name><name><surname>Bavier</surname><given-names>A.</given-names></name></person-group><article-title>A routing underlay for overlay networks</article-title><conf-name>Proceedings of ACM SIGCOMM</conf-name><conf-loc>Karlsruhe, Germany</conf-loc><conf-date>August 25–29, 2003</conf-date><fpage>1175</fpage><lpage>1209</lpage></citation></ref>
<ref id="b9-sensors-09-07177"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Shavitt</surname><given-names>Y.</given-names></name><name><surname>Tankel</surname><given-names>T.</given-names></name></person-group><article-title>Big-bang simulation for embedding network distances in Euclidean space</article-title><source>IEEE ACM Trans. Networking</source><year>2004</year><volume>12</volume><fpage>993</fpage><lpage>1006</lpage><pub-id pub-id-type="doi">10.1109/TNET.2004.838597</pub-id></citation></ref>
<ref id="b10-sensors-09-07177"><label>10.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Zhang</surname><given-names>H.</given-names></name><name><surname>Kurose</surname><given-names>J.</given-names></name><name><surname>Towsley</surname><given-names>D.</given-names></name></person-group><article-title>Can an overlay compensate for a careless underlay?</article-title><conf-name>Proceedings of IEEE INFOCOM</conf-name><conf-loc>Barcelona, Spain</conf-loc><conf-date>April 23–29, 2006</conf-date><fpage>1</fpage><lpage>12</lpage></citation></ref>
<ref id="b11-sensors-09-07177"><label>11.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Zissimos</surname><given-names>A.</given-names></name><name><surname>Doka</surname><given-names>K.</given-names></name><name><surname>Chazapis</surname><given-names>A.</given-names></name><name><surname>Koziris</surname><given-names>N.</given-names></name></person-group><article-title>GridTorrent: Optimizing data transfers in the Grid with collaborative sharing</article-title><conf-name>Proceedings of 11th Panhellenic Conference on Informatics (PCI2007)</conf-name><conf-loc>Nuremberg, Germany</conf-loc><conf-date>May 18–20, 2007</conf-date><fpage>2</fpage><lpage>5</lpage></citation></ref>
<ref id="b12-sensors-09-07177"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chu</surname><given-names>Y.</given-names></name><name><surname>Rao</surname><given-names>S.G.</given-names></name><name><surname>Seshan</surname><given-names>S.</given-names></name><name><surname>Zhang</surname><given-names>H.</given-names></name></person-group><article-title>Enabling conferencing applications on the Internet using an overlay multicast architecture</article-title><source>ACM SIGCOMM</source><year>2001</year><volume>153</volume><fpage>55</fpage><lpage>67</lpage></citation></ref>
<ref id="b13-sensors-09-07177"><label>13.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Birman</surname><given-names>K.P.</given-names></name></person-group><article-title>Scalable trust: engineering challenge or complexity barrier?</article-title><conf-name>Proceedings of the first ACM workshop on Scalable trusted computing</conf-name><conf-loc>Alexandria, VA, USA</conf-loc><conf-date>November 3, 2006</conf-date><fpage>1</fpage><lpage>2</lpage></citation></ref>
<ref id="b14-sensors-09-07177"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Waters</surname><given-names>G.</given-names></name><name><surname>Crawford</surname><given-names>J.</given-names></name><name><surname>Lim</surname><given-names>S.G.</given-names></name></person-group><article-title>Optimising multicast structures for grid computing</article-title><source>Compt. Commun</source><year>2004</year><volume>27</volume><fpage>1389</fpage><lpage>1400</lpage><pub-id pub-id-type="doi">10.1016/j.comcom.2004.02.015</pub-id></citation></ref>
<ref id="b15-sensors-09-07177"><label>15.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bell</surname><given-names>G.</given-names></name><name><surname>Gray</surname><given-names>J.</given-names></name><name><surname>Szalay</surname><given-names>A.</given-names></name></person-group><article-title>Petascale computational systems</article-title><conf-name>Proceedings of IEEE INFOCOM</conf-name><conf-loc>Barcelona, Catalunya, Spain</conf-loc><conf-date>April 23–29, 2006</conf-date><fpage>110</fpage><lpage>112</lpage></citation></ref>
<ref id="b16-sensors-09-07177"><label>16.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Akbarinia</surname><given-names>R.</given-names></name><name><surname>Esther</surname><given-names>P.</given-names></name><name><surname>Patrick</surname><given-names>V.</given-names></name></person-group><article-title>Data currency in replicated DHTs</article-title><conf-name>SIGMOD ’07: Proceedings of the 2007 ACM SIGMOD international conference on Management of data</conf-name><conf-loc>Beijing, China</conf-loc><conf-date>June 11–14, 2007</conf-date><fpage>1389</fpage><lpage>1400</lpage></citation></ref>
<ref id="b17-sensors-09-07177"><label>17.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mouratidis</surname><given-names>K.</given-names></name><name><surname>Bakiras</surname><given-names>S.</given-names></name><name><surname>Papadias</surname><given-names>D.</given-names></name></person-group><article-title>Continuous monitoring of top-k queries over sliding windows</article-title><source>ACM Trans. Data Sys</source><year>2006</year><volume>31</volume><fpage>1095</fpage><lpage>1133</lpage><pub-id pub-id-type="doi">10.1145/1166074.1166084</pub-id></citation></ref>
<ref id="b18-sensors-09-07177"><label>18.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Akbarinia</surname><given-names>R.</given-names></name><name><surname>Esther</surname><given-names>P.</given-names></name><name><surname>Patrick</surname><given-names>V.</given-names></name></person-group><article-title>Best position algorithms for top-k queries</article-title><conf-name>VLDB ’07:Proceedings of the 33rd international conference on Very large data bases</conf-name><conf-loc>Vienna, Austria</conf-loc><conf-date>September 23–28, 2007</conf-date><fpage>1389</fpage><lpage>1400</lpage></citation></ref>
<ref id="b19-sensors-09-07177"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ye</surname><given-names>B.</given-names></name><name><surname>Guo</surname><given-names>M.</given-names></name><name><surname>Zhou</surname><given-names>J.</given-names></name><name><surname>Chen</surname><given-names>D.</given-names></name></person-group><article-title>A multicast based anonymous information sharing protocol for peer-to-peer systems</article-title><source>IEICE Trans. Inform. Sys</source><year>2006</year><volume>E89-D</volume><fpage>581</fpage><lpage>588</lpage><pub-id pub-id-type="doi">10.1093/ietisy/e89-d.2.581</pub-id></citation></ref>
<ref id="b20-sensors-09-07177"><label>20.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Jia</surname><given-names>W.</given-names></name><name><surname>Tu</surname><given-names>W.</given-names></name><name><surname>Wu</surname><given-names>J.</given-names></name></person-group><article-title>Hierarchical Multicast Tree Algorithms for Application Layer Mesh Networks</article-title><conf-name>Proceedings of 2006 International Conference on Computer Networks and Mobile Computing</conf-name><conf-loc>Los Angeles, CA, USA</conf-loc><conf-date>September 23–29, 2006</conf-date><fpage>967</fpage><lpage>971</lpage></citation></ref>
<ref id="b21-sensors-09-07177"><label>21.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Setton</surname><given-names>E.</given-names></name><name><surname>Noh</surname><given-names>J.</given-names></name><name><surname>Girod</surname><given-names>B.</given-names></name></person-group><article-title>Rate-distortion optimized video peer-to-peer multicast streaming</article-title><conf-name>Proceedings of the ACM workshop on Advances in peer-to-peer multimedia streaming multimedia streaming</conf-name><conf-loc>Hilton, Singapore</conf-loc><conf-date>November 11, 2005</conf-date><fpage>160</fpage><lpage>172</lpage></citation></ref>
<ref id="b22-sensors-09-07177"><label>22.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Stocia</surname><given-names>I.</given-names></name><name><surname>Morris</surname><given-names>R.</given-names></name><name><surname>Karger</surname><given-names>D.</given-names></name><name><surname>Kaashoek</surname><given-names>M.F.</given-names></name><name><surname>Balakrishnan</surname><given-names>H.</given-names></name></person-group><article-title>Chord: A scalable peer-to-peer lookup service for internet applications</article-title><conf-name>Proceedings of ACM SIGCOMM</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>August 27–31, 2001</conf-date><fpage>160</fpage><lpage>172</lpage></citation></ref>
<ref id="b23-sensors-09-07177"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Tu</surname><given-names>W.</given-names></name><name><surname>Jia</surname><given-names>W.</given-names></name></person-group><article-title>A scalable and efficient end host multicast for Peer-to-Peer Systems</article-title><conf-name>Proceedings of IEEE Globecom</conf-name><conf-loc>Dallas, Texas, USA</conf-loc><conf-date>November 29–December 3, 2004</conf-date><fpage>967</fpage><lpage>971</lpage></citation></ref>
<ref id="b24-sensors-09-07177"><label>24.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhang</surname><given-names>Y.</given-names></name><name><surname>Roughan</surname><given-names>M.</given-names></name><name><surname>Duffield</surname><given-names>N.</given-names></name><name><surname>Greenberg</surname><given-names>A.</given-names></name></person-group><article-title>Fast accurate computation of large-scale IP traffic matrices from link loads</article-title><source>ACM SIGMETRICS</source><year>2003</year><volume>31</volume><fpage>206</fpage><lpage>217</lpage><pub-id pub-id-type="doi">10.1145/885651.781053</pub-id></citation></ref>
<ref id="b25-sensors-09-07177"><label>25.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jia</surname><given-names>W.</given-names></name></person-group><article-title>Implementation of a Reliable Multicast Protocol</article-title><source>Software-Pract. Exper</source><year>1997</year><volume>27</volume><fpage>813</fpage><lpage>850</lpage><pub-id pub-id-type="doi">10.1002/(SICI)1097-024X(199707)27:7&lt;813::AID-SPE107&gt;3.0.CO;2-E</pub-id></citation></ref>
<ref id="b26-sensors-09-07177"><label>26.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Lazarevic</surname><given-names>A.</given-names></name><name><surname>Pokrajac</surname><given-names>D.</given-names></name><name><surname>Obradovic</surname><given-names>Z.</given-names></name></person-group><article-title>Distributed clustering and local regression for knowledge discovery in multiple spatial databases</article-title><conf-name>Proceedings of Eighth European Symposium on Artificial Neural Networks</conf-name><conf-loc>Bruges, Belgium</conf-loc><conf-date>April 26–28, 2000</conf-date><fpage>129</fpage><lpage>134</lpage></citation></ref>
<ref id="b27-sensors-09-07177"><label>27.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Wei</surname><given-names>B.</given-names></name><name><surname>Fedak</surname><given-names>G.</given-names></name><name><surname>Cappello</surname><given-names>F.</given-names></name></person-group><article-title>Scheduling Independent Tasks Sharing Large Data Distributed with BitTorrent</article-title><conf-name>Proceedings of the 6th IEEE/ACM International Workshop on Grid Computing</conf-name><conf-loc>Seattle, WA, USA</conf-loc><conf-date>November 13–14, 2005</conf-date><fpage>219</fpage><lpage>226</lpage></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-09-07177" position="float">
<label>Figure 1.</label>
<caption>
<p>Sensor Grid Architecture.</p></caption>
<graphic xlink:href="sensors-09-07177f1.gif"/></fig>
<fig id="f2-sensors-09-07177" position="float">
<label>Figure 2.</label>
<caption>
<p>The multicast tree according to the space weight.</p></caption>
<graphic xlink:href="sensors-09-07177f2.gif"/></fig>
<fig id="f3-sensors-09-07177" position="float">
<label>Figure 3.</label>
<caption>
<p>The multicast tree according to the data weight.</p></caption>
<graphic xlink:href="sensors-09-07177f3.gif"/></fig>
<fig id="f4-sensors-09-07177" position="float">
<label>Figure 4.</label>
<caption>
<p>Selecting the spatial center nodes in the members of one cluster of a 2-<italic>D</italic> Sensor grid.</p></caption>
<graphic xlink:href="sensors-09-07177f4.gif"/></fig>
<fig id="f5-sensors-09-07177" position="float">
<label>Figure 5.</label>
<caption>
<p>Shortest path area nodes (SPAN) in a 2-<italic>D</italic> Sensor grid, for example: The node (2,4) is 4 node’s Shortest Path Area Nodes (SPAN): (2,6), (3,5), (5,5), (2,4).</p></caption>
<graphic xlink:href="sensors-09-07177f5.gif"/></fig>
<fig id="f6-sensors-09-07177" position="float">
<label>Figure 6.</label>
<caption>
<p>The relationship of <italic>W<sub>i</sub></italic>, <italic>W</italic>′<italic><sub>i</sub></italic> and <italic>W</italic>″<italic><sub>i</sub></italic>.</p></caption>
<graphic xlink:href="sensors-09-07177f6.gif"/></fig>
<fig id="f7-sensors-09-07177" position="float">
<label>Figure 7.</label>
<caption>
<p>Simulation results for SPACE, DATA and our GBMASG.</p></caption>
<graphic xlink:href="sensors-09-07177f7.gif"/></fig>
<table-wrap id="t1-sensors-09-07177" position="float">
<label>Table 1.</label>
<caption>
<p>The space weight vector <italic>W</italic>′ in one cluster, the weights marked * belong to the cluster member.</p></caption>
<table frame="box" rules="all">
<tbody>
<tr>
<td align="center" valign="middle">Y=6</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">1*</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td></tr>
<tr>
<td align="center" valign="middle">Y=5</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">2*</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">1*</td></tr>
<tr>
<td align="center" valign="middle">Y=4</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">4*</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">1</td></tr>
<tr>
<td align="center" valign="middle">Y=3</td>
<td align="center" valign="middle">1*</td>
<td align="center" valign="middle">5</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">1</td></tr>
<tr>
<td align="center" valign="middle">Y=2</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">10*</td>
<td align="center" valign="middle">4</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">2*</td></tr>
<tr>
<td align="center" valign="middle">Y=1</td>
<td align="center" valign="middle">1*</td>
<td align="center" valign="middle">3*</td>
<td align="center" valign="middle">1*</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td></tr>
<tr>
<td align="center" valign="middle"/>
<td align="center" valign="middle">X=1</td>
<td align="center" valign="middle">X=2</td>
<td align="center" valign="middle">X=3</td>
<td align="center" valign="middle">X=4</td>
<td align="center" valign="middle">X=5</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-09-07177" position="float">
<label>Table 2.</label>
<caption>
<p>The data weight vector <italic>W</italic>″, in the cluster, the weights marked * belong to the cluster member.</p></caption>
<table frame="box" rules="all">
<tbody>
<tr>
<td align="center" valign="middle">Y=6</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">1*</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td></tr>
<tr>
<td align="center" valign="middle">Y=5</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">2*</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">0*</td></tr>
<tr>
<td align="center" valign="middle">Y=4</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">5*</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">1</td></tr>
<tr>
<td align="center" valign="middle">Y=3</td>
<td align="center" valign="middle">2*</td>
<td align="center" valign="middle">4</td>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">1</td></tr>
<tr>
<td align="center" valign="middle">Y=2</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">1*</td>
<td align="center" valign="middle">4</td>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">2*</td></tr>
<tr>
<td align="center" valign="middle">Y=1</td>
<td align="center" valign="middle">3*</td>
<td align="center" valign="middle">10*</td>
<td align="center" valign="middle">3*</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td></tr>
<tr>
<td align="center" valign="middle"/>
<td align="center" valign="middle">X=1</td>
<td align="center" valign="middle">X=2</td>
<td align="center" valign="middle">X=3</td>
<td align="center" valign="middle">X=4</td>
<td align="center" valign="middle">X=5</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-09-07177" position="float">
<label>Table 3.</label>
<caption>
<p>The weight vector <italic>W</italic>″, in the cluster, the weights marked * belong to the cluster member.</p></caption>
<table frame="box" rules="all">
<tbody>
<tr>
<td align="center" valign="middle">Y=6</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">1.00*</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">0</td></tr>
<tr>
<td align="center" valign="middle">Y=5</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">2.00*</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">0.53*</td></tr>
<tr>
<td align="center" valign="middle">Y=4</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">4.47*</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">1</td></tr>
<tr>
<td align="center" valign="middle">Y=3</td>
<td align="center" valign="middle">1.47*</td>
<td align="center" valign="middle">4</td>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">1</td></tr>
<tr>
<td align="center" valign="middle">Y=2</td>
<td align="center" valign="middle">2</td>
<td align="center" valign="middle">5.79*</td>
<td align="center" valign="middle">4</td>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">2.00*</td></tr>
<tr>
<td align="center" valign="middle">Y=1<break/>hline</td>
<td align="center" valign="middle">1.94*<break/>X=1</td>
<td align="center" valign="middle">6.27*<break/>X=2</td>
<td align="center" valign="middle">1.94*<break/>X=3</td>
<td align="center" valign="middle">0<break/>X=4</td>
<td align="center" valign="middle">0<break/>X=5</td></tr></tbody></table></table-wrap></sec></back></article>
