Abstract:
A method for multicasting data includes obtaining a set of minimum utility preferences and a utility preference for each user in a multicast group, computing a corresponding probability distπbution of different multicasting data the users are requesting, running a lottery of operating points of the set according to the corresponding probability distπbution, and multicasting the operating point determined from the lottery. For scalable layered data the method includes determining initial utility and payoff parameter for each user for a lowest data layer accommodating all group users, running a lottery for the layer using an initialized probability vector to assign the lowest layer, multicasting the lowest layer, determining new initial utility and corresponding payoff parameter for each remaining group user for a plurality of layers of data, running another lottery according to a determined mixed set probability vector to select a particular layer, and multicasting the particular layer.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to U.S. Provisional Patent Application Ser. No. 60/001,464 entitled “METHOD OF MULTICASTING,” filed on Nov. 1, 2007, which is hereby incorporated by reference in its entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The invention relates to a method of multicasting to a plurality of users wherein at least one user has a different channel condition than another user. 
       BACKGROUND OF THE INVENTION 
       [0003]    With the rapid development of wireless network infrastructure, the demand for video services over these networks has been steadily growing. Among various services, video streaming has become one of the most important applications. However, in a wireless environment, efficiently streaming a coded video bit stream to a large number of users and simultaneously guaranteeing a certain quality of service (QoS) remains a challenge. 
         [0004]    Video multicast is an efficient way to deliver one video simultaneously to many users over networks. In contrast to unicasting, video multicast improves bandwidth efficiency by sharing video packets delivered through networks. However, video multicast faces some particular problems arising from wireless network applications. For example, a multicasting wireless network is often characterized by having a physical channel that is highly error-prone and time varying. In addition, users in such a network can often have diverse channel conditions. 
         [0005]    Retransmission and forward error correction (FEC) are the two commonly used mechanisms to improve the throughput of a wireless network. However, there are drawbacks when applying them straightforwardly in the multicast scenario. For example, retransmission is inefficient to all but one user when repeatedly multicasting of an original packet for the benefit of a single user who is error-prone. In fact, 802.11 wireless local area networks (WLANs) do not support link layer retransmission for multicast applications. Meanwhile, FEC can maintain a constant throughput and bounded delay. However, to guarantee certain QoS, FEC codes are often chosen for the worst channel conditions. This can unnecessarily penalize the throughput when the channel is in a good state. 
         [0006]    The hybrid Automatic Repeat-reQuest (ARQ) scheme proposed by Majumdar, D. Sachs, I. Kozintsev, K. Ramchandran and M. Yeung (in “Multicast and unicast real-time video streaming over wireless LANs”, IEEE Trans. Circuits &amp; System for Video Technol., Vol. 12, No. 6, June 2002, pp. 524-534) combines the benefits from both retransmission and FEC. With hybrid-ARQ, the server first sends user data and then FEC data to the client. During the process, when the client has received all the user data or enough FEC data to recover losses, the client sends an acknowledgement (ACK) back to the server. Once the server receives ACK, it stops sending more data. Since the amount of FEC data sent to the client can be adjusted properly according to current channel condition, hybrid-ARQ is able to maintain high bandwidth efficiency. However, when the channel undergoes severe losses, hybrid-ARQ can result in unbounded delay and bandwidth expansion. For real-time services such as video streaming, video packets have to be delivered before their playback deadlines through a potentially bandwidth-limited network. So for such applications, video data losses can still occur with hybrid-ARQ, which degrades QoS. 
         [0007]    In the environment of video streaming to a multicast group over a wireless network with feedback, it is contemplated in this invention that the users in the group will have different channel conditions and, as such, delivery of the same video stream to the entire group may not be equally efficacious to each member of the group. Therefore, in such a contemplated multicast group, it is believed that a need exists to develop an operating point strategy, which is “fair and reasonable” to all the users. 
         [0008]    The premise of the invention is that a good operating point should provide good overall system performance, while maintaining reasonable performance for each user in the group. However, because of the possibly diverse channel conditions in multicast networks, the above two requirements can often be contradictory. This makes it difficult to directly quantify the performance of an operating point. As such, a set of intuitive factors for an “ideal” operating point selection strategy will be briefly discussed. 
         [0009]    The first intuitive factor is the majority rule. This factor is based on the premise that if the majority of the users have the same or similar channel conditions, then these users should be more likely to get their desired operating points than of the rest users. This guarantees a reasonably good overall system performance. 
         [0010]    The second intuitive factor is individual fairness. This factor provides that no individual user should be completely denied service nor should one be overly penalized. The QoS degradation due to a selected operating point should be (preferably equally) shared by all the users. 
         [0011]    The third intuitive factor is flexibility. This factor is essentially a recognition of the fact that the first two factors can be conflicting and one factor can be preferred over the other. Here, strategy should be flexible to implement such a preference. 
         [0012]    In light of the potential conflicts between the intuitive factors, it would appear that some quantitative system performance metrics can be helpful in characterizing the operating points in a particular multicast environment. In the following, a list of some methods will now be presented, along with an analysis of how they influence intuitive factors summarized above. Suppose a multicast group has N users, and the server can choose M different operating points with each operating point denoted as S m  (where 1≦m≦M). For each user j (1≦j≦N), when an operating point S m  is selected, its corresponding performance measure will be noted as U j,m . 
         [0013]    The worst-case method selects an operating point according to the users in the group who have the worst channel condition. In other words, the selected operating point is only optimal for those users with the worst channel condition, regardless of the number of users in the group with other channel conditions. This can overly penalize a subgroup of users with better channel condition and can decrease the collective system performance. It does not provide any flexibility in adjusting between the first and second intuitive factors. 
         [0014]    The average performance method defines a metric based on the average performance of all the users in the group. Here, the operating point is derived by optimizing the metric: 
         [0000]    
       
         
           
             
               m 
               * 
             
             = 
             
               
                 
                   arg 
                   ( 
                   
                     Max 
                      
                     
                       
                         ∑ 
                         
                           j 
                           = 
                           1 
                         
                         N 
                       
                        
                       
                         U 
                         
                           j 
                           . 
                           m 
                         
                       
                     
                   
                   ) 
                 
                  
                 
                     
                 
                  
                 1 
               
               ≤ 
               m 
               ≤ 
               M 
             
           
         
       
     
         [0000]    This method satisfies the first factor, but fails the second factor, because some users in the group can be overly penalized. The method does not seemingly provide flexibility in adjusting between the first and second factors. 
         [0015]    The weighted average method defines the metric as the weighted average performance of the users in the group, and the operating point is derived by optimizing the metric: 
         [0000]    
       
         
           
             
               m 
               * 
             
             = 
             
               arg 
               ( 
               
                 Max 
                  
                 
                   
                     ∑ 
                     
                       j 
                       = 
                       1 
                     
                     N 
                   
                    
                   
                     
                       W 
                       j 
                     
                      
                     
                       U 
                       
                         j 
                         . 
                         m 
                       
                     
                   
                 
               
               ) 
             
           
         
       
       
         
           where 
         
       
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                 W 
                 j 
               
             
             = 
             
               
                 1 
                  
                 
                     
                 
                  
                 and 
                  
                 
                     
                 
                  
                 1 
               
               ≤ 
               m 
               ≤ 
               M 
             
           
         
       
     
         [0000]    The weight W j  reflects the importance of user j in the overall system. An example for the weights can be: 
         [0000]    
       
         
           
             
               W 
               j 
             
             = 
             
               { 
               
                 
                   
                     
                       1 
                       / 
                       
                         N 
                         g 
                       
                     
                   
                   
                     
                       
                         P 
                         j 
                       
                       ≤ 
                       
                         P 
                         th 
                       
                     
                   
                 
                 
                   
                     0 
                   
                   
                     
                       
                         P 
                         j 
                       
                       &gt; 
                       
                         P 
                         th 
                       
                     
                   
                 
               
             
           
         
       
     
         [0000]    where P j  is the channel error/loss rate experienced by user j, P th  is a preset threshold and N g  is the number of users in the group having P j  being less than P th . This weighting approach only averages over the users with reasonably good channel conditions while excluding those with bad channel conditions. This method can provide good performance for a selected subgroup of users. However, it can also overly penalize certain users in the group; thus failing the second factor. Further, this method cannot provide flexibility in adjusting between the first and second factors. 
         [0016]    The minimax degradation method selects an operating point S m , which can minimize the maximum performance degradation among all the users: 
         [0000]    
       
         
           
             
               M 
               * 
             
             = 
             
               
                 arg 
                  
                 
                   { 
                   
                     Min 
                     [ 
                     
                       Max 
                        
                       
                         
                           ∑ 
                           
                             j 
                             = 
                             1 
                           
                           N 
                         
                          
                         
                           ( 
                           
                             
                               U 
                               j 
                               * 
                             
                             - 
                             
                               U 
                               
                                 j 
                                 , 
                                 m 
                               
                             
                           
                           ) 
                         
                       
                     
                     ] 
                   
                   } 
                 
                  
                 
                     
                 
                  
                 1 
               
               ≤ 
               m 
               ≤ 
               M 
             
           
         
       
     
         [0000]    where U* j  is the optimal performance achievable by user j among all the available operating points. This method cannot give preference to the majority users in the group and thus can compromise overall system performance, which fails on the first factor. As such, this method cannot provide flexibility in adjusting the first and second factors. 
       SUMMARY OF THE INVENTION 
       [0017]    A method for multicasting data comprises obtaining a set of minimum utility preferences for each user in a multicast group; obtaining a utility preferences for each user in a multicast group; computing a corresponding probability distribution of different multicasting data that the users are requesting; running a lottery of the set of the preference operating points according to the corresponding probability distribution; and multicasting the operating point determined from the lottery. For scalable layered data the method comprises: determining initial utility and payoff parameter for each user in a group for a lowest layer of data that accommodates all users; initializing a probability vector as (1, . . . , 0); running a lottery for the layer using the probability vector to assign the lowest layer; multicasting the lowest layer; determining new initial utility and corresponding payoff parameter for each remaining user in the group for a plurality of layers of data when there is confirmation at least one user in the group has received the lowest layer; determining a mixed set probability vector for the plurality of layers of data; running another lottery according to the mixed set probability vector to select a particular layer from the plurality; and multicasting the particular layer. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0018]      FIG. 1  is a flow chart of selecting an operating point to multicast according to the invention. 
           [0019]      FIG. 2  is a flow chart of selecting an operating point for scalable layered data according to the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0020]    The invention provides a method of selecting an operating point in a multicasting network within a noisy/lossy environment. The formalism uses a Game Theory strategy (i.e. Nash bargaining game). Each available operating point S m  is defined as a pure strategy and the number of such operating points is denoted as M. Due to the discrete nature of the strategies, a simple but fair way for a server or a functional equivalent to choose an operating point is to run a lottery within a set  S  of possible strategies, where  S =(S 1 , S 2 , S M ). Next, the server surveys the population of users to determine u j,m , which is the utility function for each user j for a particular operating S m . The approach then can include the calculation of the corresponding probability distribution vector  λ =(λ 1 , λ 2 , . . . λ M ). This corresponds to the “mixed strategies” in the Nash bargaining game and the approach denotes each mixed strategy as probability distribution vector  λ  for simplicity. For mixed strategy, it is the set of probabilities  λ * that users agree on, can agree on or can be predetermined by the server. First, the mixed strategy is Nash Bargaining Solution (NBS) if and only if it satisfies the condition of the arithmetic product of the differences of the fair payoffs (U j ( λ *)) and the initial utilities d j  is greater than or equal to the arithmetic product of the differences of payoffs (U j  ( λ )) and the initial utilities d j . 
         [0021]    The user preference is then determined and is characterized as utility function U j,m  for user j, which reflects the payoff when operating point S m  is selected. It should be related to the user quality of service (QoS). For a mixed strategy distribution vector  λ , user j is concerned about her expected payoff which can be written as 
         [0000]    
       
         
           
             
               
                 U 
                 j 
               
                
               
                 ( 
                 
                   λ 
                   _ 
                 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 
                   m 
                   = 
                   1 
                 
                 M 
               
                
               
                 
                   λ 
                   m 
                 
                  
                 
                   u 
                   
                     j 
                     , 
                     m 
                   
                 
               
             
           
         
       
     
         [0000]    and the utility for the entire group for a mixed strategy A is denoted as 
         [0000]          U   ( λ )=( U   1 ( λ ),  U   2 ( λ ), . . . ,  U   m ( λ )). 
         [0022]    The initial utility for user j is then determined. The initial utility d j  reflects the minimum payoff (or equivalently its QoS) that the user wants to be guaranteed when participating in the game. 
         [0023]    The game has a unique solution, which is NBS. In the mixed strategy case, it is a probability distribution vector  λ * that users agree on terms of fairness and is used in the lottery. A mixed strategy distribution vector  λ * is NBS if and only if it satisfies the condition for all feasible  λ : 
         [0000]    
       
         
           
             
               
                 ∏ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     Uj 
                      
                     
                       ( 
                       
                         
                           λ 
                           _ 
                         
                         * 
                       
                       ) 
                     
                   
                   - 
                   
                     d 
                     j 
                   
                 
                 ) 
               
             
             ≥ 
             
               
                 ∏ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     Uj 
                      
                     
                       ( 
                       
                         λ 
                         _ 
                       
                       ) 
                     
                   
                   - 
                   
                     d 
                     j 
                   
                 
                 ) 
               
             
           
         
       
     
         [0000]    The multicasting server can find the NBS probabilities distribution vector  λ * by solving the following optimization problem: 
         [0000]    
       
         
           
             max 
              
             
               
                 ∏ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     
                       ∑ 
                       
                         m 
                         = 
                         1 
                       
                       M 
                     
                      
                     
                       
                         λ 
                         m 
                       
                        
                       
                         u 
                         
                           j 
                           , 
                           m 
                         
                       
                     
                   
                   - 
                   
                     d 
                     j 
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             such 
              
             
                 
             
              
             that 
           
         
       
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                 λ 
                 m 
               
             
             = 
             
               
                 1 
                  
                 
                   
 
                 
                  
                 and 
                  
                 
                   
 
                 
                  
                 
                   
                     ∑ 
                     
                       j 
                       = 
                       1 
                     
                     N 
                   
                    
                   
                     
                       λ 
                       m 
                     
                      
                     
                       u 
                       
                         j 
                         , 
                         m 
                       
                     
                   
                 
               
               ≥ 
               
                 d 
                 j 
               
             
           
         
       
     
         [0000]    for any user j (1≦j≦N). 
         [0024]    Consider a multicast session that is divided into multiple subsessions during which the server can change the operating point each time. At the beginning of each subsession, the server first checks whether there is any change in the user group. Such changes include N, M, the set of {S m } or the set of {(u j,m d j )}. If so, the server recalculates 
         [0000]    
       
         
           
             max 
              
             
               
                 ∏ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     
                       ∑ 
                       
                         m 
                         = 
                         1 
                       
                       M 
                     
                      
                     
                       
                         λ 
                         m 
                       
                        
                       
                         u 
                         
                           j 
                           , 
                           m 
                         
                       
                     
                   
                   - 
                   
                     d 
                     j 
                   
                 
                 ) 
               
             
           
         
       
     
         [0000]    to obtain an updated NBS vector  λ *; otherwise, the server continues to use the previous NBS vector  λ *. Based on the probability distribution vector  λ * the server randomly chooses an operating point S m  in accordance with  λ * and uses it to multicast throughout the subsession. 
         [0025]      FIG. 1  shows a general flow chart of a feature of the invention. The setting is a multicast environment where a server or a functional equivalent transmits simultaneously the same data to different users who can have different channel conditions or different data error/loss conditions. The invention first begins with starting Block  100  which involves providing useful data to transmit. Block  110  involves determining the initial utility d i  and payoff parameter w m  for each user j in the group by surveying the users in the group. Block  120  involves determining NBS mixed set of probabilities  λ * by finding 
         [0000]    
       
         
           
             max 
              
             
               
                 ∏ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     
                       ∑ 
                       
                         m 
                         = 
                         1 
                       
                       M 
                     
                      
                     
                       
                         λ 
                         m 
                       
                        
                       
                         u 
                         
                           j 
                           , 
                           m 
                         
                       
                     
                   
                   - 
                   
                     d 
                     j 
                   
                 
                 ) 
               
             
           
         
       
       
         
           when 
         
       
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   1 
                 
                 M 
               
                
               
                 λ 
                 m 
               
             
             = 
             1. 
           
         
       
     
         [0000]    Block  130  is the running of the lottery of the available operating points within the set  S  of possible strategies. Here the operating point is randomly selected based on weight given to the operating points from the NBS mixed set probability distribution  λ *. Block  140  then involves multicasting of the winning operating point S m . This winning operating point can be bit stream data. Block  160  is the step that determines if the session is complete, wherein the server or functional equivalent verifies that users have received all useable data commensurate with the multicasting of the winning operating point. This can be in the form of acknowledgement. If users are satisfied, the session is finished which is reflected by Block  170 . If any users have a status that has changed or needs different operating points, Block  160  provides an update of the probability distribution  λ * for the strategies. Block  130  is then rerun to select a winning operating point. Blocks  130 ,  140 ,  150  and  160  can run repeatedly until all users have acknowledged satisfaction of the multicast. 
         [0026]    a. Multicasting Scalable Layered Data 
         [0027]    Scalable layered data refer to the data that are organized into multiple layers such that the lower layer data are more important than the higher layer data. This type of data can often be found from the output of a scalable audio, video or image coder. For example, scalable video coding (SVC) [5] for video coding, JPEG2000 for image coding and AAC for audio coding (per ISO/IEC 14496-10: 2005/FDAM 3 Scalable Video Coding (WG 11 N9197)). 
         [0028]    Consider the scalable layered user data are divided into multiple data packets and each time the multicast server selects one data packet from a layer to transmit. To protect the user data, redundancy data (such as FEC) are added, which can be along each layer or across all the layers. These redundancy data are also divided into packets to send. For the scalable layered data with M layers, the server can multicast a data packet from any of the layers. So the size of the mixed strategy set is M and each pure strategy s m  corresponds to choosing a packet from layer m to multicast. 
         [0029]    The approach defines the utility function u j,m , for user j when the pure strategy s m  selected has the following: u j,m =w m , when user j requesting a layer m packet or otherwise, u j,m =0, (where w m  εR + ). The payoff parameter w m  is defined such that it is directly related to the QoS improvement. For example, for scalable video coding (SVC), it can be defined as the MSE (mean squared error) reduction when the user requests a packet from layer m. For scalable layered data, the payoff parameters are defined such that w i ≧w j  (where 0≦i&lt;j). It ensures that the server will give preferences to multicasting user data from lower layers for good overall system performance. For scalable layered data, the initial utility d j  for user j is defined such that it decreases as the user requests packets from a higher layer. Specifically, the approach defines d i  for user j requesting a packet from layer m as the following to reflect the constraint: 
         [0000]        d   j   =w   m /α m , where αεR and α≧1.
 
         [0000]    With the above definition, α serves as the parameter to adjust the preferences between the first and second intuitive factors (i.e., majority rule for reasonably good overall system performance and individual fairness for insuring that no individual user should be completely denied service nor should one be overly penalized, respectively). 
         [0030]    For a small α value, more preference is given to the users who are requesting lower layers. This guarantees good overall performance since the lower layer data are more important than the higher layer data. On the other hand, for a large α value, all the users are treated more equally so that the majority of users are favored from the perspective that all strategies and hence all users are treated more equally. Therefore, the factors (1) and (2) can be flexibly adjusted. 
         [0031]    In summary, the server performs the operating point selection for scalable layered data multicasting as follows: 
         [0032]    Step 1. Initialize vector  λ * as (1, . . . , 0) to multicast the lowest layer to all the users in the group. 
         [0033]    Step 2. If the user condition changes and/or acknowledgement arrives, go to Step 3; otherwise go to Step 5. 
         [0034]    Step 4. Trace acknowledgement sender user j. Record its requesting layer, and update its u j,m , and d j  based on d j =w m /α m , where αεR and α≧1 and u j,m =w m , when user j requesting a layer m packet or otherwise, u j,m , =0. 
         [0035]    Step 5. Update vector  λ * by solving 
         [0000]    
       
         
           
             max 
              
             
               
                 ∏ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                   
               
                
               
                 ( 
                 
                   
                     
                       ∑ 
                       
                         m 
                         = 
                         1 
                       
                       M 
                     
                      
                     
                       
                         λ 
                         m 
                       
                        
                       
                         u 
                         
                           j 
                           , 
                           m 
                         
                       
                     
                   
                   - 
                   
                     d 
                     j 
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             such 
              
             
                 
             
              
             that 
           
         
       
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   1 
                 
                 M 
               
                
               
                 λ 
                 m 
               
             
             = 
             1 
           
         
       
       
         
           and 
         
       
       
         
           
             
               
                 ∑ 
                 
                   j 
                   = 
                   1 
                 
                 N 
               
                
               
                 
                   λ 
                   m 
                 
                  
                 
                   u 
                   
                     j 
                     , 
                     m 
                   
                 
               
             
             ≥ 
             
               
                 d 
                 j 
               
                
               
                   
               
                
               
                 ( 
                 
                   1 
                   ≤ 
                   j 
                   ≤ 
                   N 
                 
                 ) 
               
             
           
         
       
     
         [0036]    Step 6. Pick a winning strategy S m , randomly according to vector  λ * and multicast a packet from layer m. 
         [0037]    Step 7. If acknowledgement or changes in user conditions occur, go to Step 3; otherwise the session is completed. 
         [0038]      FIG. 2  shows the operation flowchart of the inventive operating point selection method for multicasting scalable layered data described above. The invention begins with Block  200 , which involves first providing useful data to transmit. Block  210  involves determining the initial utility d i  and payoff parameter w m  for each user j in the group by surveying the users in the group. Block  220  involves determining the initial set probabilities  λ * which correlate to the lowest layer that can accommodate all the users in the group. Block  230  is the running of the lottery according to the initial set probabilities  λ *. The layer m determined in Block  230  is then multicast as represented by Block  240 . Block  250  can represent communication with the users to determine successful receipt of the multicast layer m and/or some change in user conditions. Block  260  involves reevaluating the initial utility d j  and payoff parameter w m  for user j who requests data from a different layer than last time. Block  270  involves determining the probability distribution  λ * which corresponds to the new sets of initial utilities and payoff parameters of all the users in the group. Block  280  involves determining if the multicast session is finished. If not, the same process repeats starting from Block  230 . 
         [0039]    For greater understanding of the invention, a simple example of the invention will be provided where there are two users  1 ,  2  (i.e. N=2) and two layers of data having utility values u 1 , u 2 . The two users have initial utility values d 1 , d 2 . Only the layer which one user is requesting has non-zero utility to the user. The multicasting server can find the NBS probabilities distribution vector  λ * by solving the following optimization problem: 
         [0000]    
       
         
           
             
               
                 
                   
                     Max 
                      
                     
                       
                         ∏ 
                         
                           j 
                           = 
                           1 
                         
                         2 
                       
                        
                       
                           
                       
                        
                       
                         ( 
                         
                           
                             
                               ∑ 
                               
                                 m 
                                 = 
                                 1 
                               
                               2 
                             
                              
                             
                               
                                 λ 
                                 m 
                               
                                
                               
                                 u 
                                 
                                   j 
                                   , 
                                   m 
                                 
                               
                             
                           
                           - 
                           
                             d 
                             j 
                           
                         
                         ) 
                       
                     
                   
                   = 
                   
                     max 
                      
                     
                         
                     
                      
                     
                       U 
                        
                       
                         ( 
                         
                           
                             λ 
                             1 
                           
                           , 
                           
                             λ 
                             2 
                           
                         
                         ) 
                       
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     
                       ( 
                       
                         
                           
                             u 
                             1 
                           
                            
                           
                             λ 
                             1 
                           
                         
                         - 
                         
                           d 
                           1 
                         
                       
                       ) 
                     
                      
                     
                       ( 
                       
                         
                           
                             u 
                             2 
                           
                            
                           
                             λ 
                             2 
                           
                         
                         - 
                         
                           d 
                           2 
                         
                       
                       ) 
                     
                   
                 
               
             
           
         
       
     
         [0000]    such that λ 1 +λ 2 =1. m corresponds to the number of operating points and j corresponds to the number of users. The probabilities λ 1  and λ 2  simplify to 
         [0000]      λ 1 =0.5+0.5( d   1   /u   1   −d   2   /u   2 ) and λ 2 =0.5+0.5( d   2   /u   2   −d   1   /u   1 ).
 
         [0040]    In the simple example, if u 1 =w 1  for a first layer utility, u 2 =w 2  for a second layer utility, w 1 &gt;w 2 , and a user can request layer i (iε{1, 2}), then it follows that d i =w i /α i , where α≧1 and αεR. 
         [0041]    When the two users are requesting the same layer i=1, then λ 1 =λ 2 =0.5 +0.5(w 1 /α 1 −w 1 /α 1 )=0.5. When the two users are requesting the same layer i=2, then λ 1 =λ 2 =0.5+0.5(w 2 /α 2 −w 2 /α 2 )=0.5. In the lottery in this example, there is a 0.5 probability of selecting the initial utility or minimum payoff that user  1  (i.e. d 1 ) wants and a 0.5 probability of selecting the initial utility or minimum payoff that user  2  (i.e. d 2 ) wants. However, because in the example, both users are establishing their initial utility or minimum payoff to be the same layer, the lottery will select the layer (either i=1 or 2) that both users had identified. 
         [0042]    When user  1  is requesting the layer  1  and user  2  is requesting the same layer  2 , then λ 1 =0.5+0.5((w 1 /α 1 )/w 1 −(w 2 /α 2 )/w 2 )=0.5+0.5(1/α−1/α 2 ) and λ 2 =0.5+0.5((w 2 /α 2 )/w 2 −(w 1 /α 1 )/w 1 )=0.5+0.5(1/α 2 −1/α). With α≧1, then 1/α≧1/α 2  and λ 1 ≧λ 2 . When λ 1  exceeds λ 2 , user  1  is given the higher preference during the lottery, which is desirable, because user  1  is requesting the more important layer  1 . 
         [0043]    From the above, the results can be easily extended to other two-user multiple layers scenarios. Suppose the user  1  is requesting a layer that has initial utility function value d i =w i /α i  and user  2  is requesting a layer having an initial utility function value d j =w j /α j , then λ 1 =0.5+0.5(1/α i −1/α j ) and λ 2 =0.5+0.5(1/α j −1/α j ). In one specific example, when user  1  is requesting layer  1 , user  2  is requesting layer  2  and α=1.2, then λ 1 =0.5+0.5((w 1 /α 1 )/w 1 −(w 2 /α 2 )/w 2 )=0.5+0.5(1/α−1/α 2 )=0.5694 and λ 2 =0.5+0.5((w 2 /α 2 )/w 2 −(w 1 /α 1 )/w 1 )=0.5+0.5(1/α 2 −1/α)=0.4306. In another specific example, when user  1  is requesting layer  1 , user  2  is requesting layer  2  and α=1.5, then λ 1 =0.5+0.5((w 1 /α 1 )/w 1 −(w 2 /α 2 )/w 2 )=0.5 +0.5(1/α−1/α 2 )=0.6111 and λ 2 =0.5+0.5((w 2 /α 2 )/w 2 −(w 1 /α 1 )/w 1 )=0.5+0.5(1/α 2 −1/α)=0.3889. 
         [0044]    b. Application to Multicasting Tiered Services 
         [0045]    Tiered services in a multicasting network refer to the services that are prioritized into several groups based on a certain metric assurance. For example, users who subscribe to premium services in a multicast group can get better QoS than those who subscribe basic services. With the invented operating selection strategy, the tiered services can be realized with certain fairness maintained among each group. For a group of users with higher priority assurance, the initial utility d i  for each user j (1≦j≦N) in the group can be set to a larger value, or the utility function U j,m (1≦m≦M) is set to a smaller value. On the other hand, for a group of users with lower priority assurance, the initial utility d i  for each user j in the group can be chosen to have a smaller value, or the utility function U j,m (1≦m≦M) is set to a larger value. 
         [0046]    With the above operation, after solving the probability vector  λ *, the groups of users with higher priority have larger probability in getting their desired operating points than the groups of users with lower priority. 
         [0047]    In one embodiment of the invention the probabilities λ 1  through λ 4  used in running the lotteries are within 20% of the values that correspond to the maximum value of the arithmetic product. In other words, it is intended that alternative formalisms which that produce probabilities in the probability vector  λ * that are within 20% of the values determined from the Game Theory formulism are considered embodiments of the invention.