# Patent

## Title
Method and system for real-time allocation of a resource among several entities

## Abstract

A technique for the allocation and pricing of a resource among n buying agents during an auction bid. A bid sent by each buying agent in the form of a resource demand function si(p) is received, and a datum corresponding to the equilibrium price p* is calculated from the sum S of the n demand functions si(p), by means of the relation: S(p*)=Q. All of the bids received during a predetermined period corresponding to a round of bidding are processed in order to determine the quantity of a resource to be allocated to each buying agent. This is followed by the calculation of the data corresponding to the quantity ai to be allocated for this equilibrium price p* to each buying agent i based on its demand function si such that ai=si(p*). The management system utilizes the calculated data to allocate the corresponding quantities of the resource, and this data is stored in order to calculate the price to be billed to each buying agent.

## Background
This application is a CIP of U.S. patent application Ser. No. 10/412,901 filed Apr. 14, 2003, which claims priority of French patent application no. 02 04654 filed Apr. 15, 2002 and European patent application no. 032 92 111.6 filed Aug. 27, 2003.


FIELD OF THE INVENTION
The invention concerns a method and a system for real-time allocation and pricing of a resource among several competing buyers through an auction, when this resource is limited in quantity, and when one or more buyers require a certain quantity of this resource at a given moment and the overall demand exceeds the supply.
In essence, whether at the level of a management system of a telecommunication network or of a piece of equipment shared by several buyers, the problem lies in the sharing of the resources supplied by this system or this piece of equipment among these various buyers and in the implementation of the mechanism for controlling this allocation.
One of the problems that such a mechanism must solve is to perform an arbitration among the various buyers when the overall demand from the buyers exceeds the total resource volume available (i.e., the supply). When the demand from the buyers is lower than the supply, the buyers can be allocated everything they demand and there is no problem.
The invention applies to any system for allocating a quantitatively divisible resource.
BACKGROUND OF THE INVENTION
The term “buyer” is used to designate either a buying client or a buying agent, or even the user of the auction bid system depending on the field of application of the auction. The buying client acts through its buying agent.
The buying agent can be any logical agent, such as a software agent or automaton, that is capable of implementing an automatic procedure involved in the implementation of an auction through a telecommunication network.
The term “seller” is applied to the resource seller, such as a telecommunication company, for example. The seller acts through its buying agent which can also be any logical agent, such as a software agent or automaton, that is capable of implementing an automatic procedure involved in the implementation of an auction through a telecommunication network.
The term “auctioneer” is applied to a logical mediating (or auction organizing) agent that functions as the system for managing allocation of the resource to the buyers.
There are many existing techniques for handling the allocation of resources. For example, there are mechanisms that operate based on the order of arrival FIFO, LIFO, etc. For a FIFO (First In First Out) mechanism, it is the buyers who have formulated their bids earliest who are served. For a LIFO (Last In First Out) mechanism, conversely, it is the last one to have formulated a demand who is served.
There are also other mechanisms that do not exclude any buyer. In such mechanisms, the arbitration takes place at the level of the quantity of the resource allocated to each buyer. A rule defining the quantities allocated in proportion to the quantities demanded, for example, is used as the arbitration rule.
These mechanisms are not always very efficient from an economic point of view. In fact, an appropriate match between the supply (the quantity offered and the price) and the demand (quantities desired or obtained) can be difficult to obtain.
With such mechanisms, there are off-peak periods when the demand is lower than the available quantity of the resource and peak periods when the demand greatly exceeds the available resources.
Moreover, these mechanisms are relatively static. They are not capable of adapting and remaining relevant when the supply and the demand for resources from buyers undergo steep and rapid fluctuations.
One possible solution for meeting this criterion for the economic efficiency and adaptability of the resource allocation process is to use an allocation technique based on market mechanisms, and more specifically, on auctions.
In the applications intended by the present invention, the asset being the quantity of a resource that one wishes to allocate, this asset is considered to be quantitatively divisible.
We are more particularly interested here in multi-unit auctions (the asset is divisible). The resource we are considering is composed of several units.
We are more precisely interested here in multi-unit auctions. We cite as an example the theory developed by Klemperer—(Klemperer P., Auction Theory: A Guide to the Literature, Journal of Economic Surveys, 13 (3), 227-86, 1999).
Unfortunately, most of the research done based on multi-unit auctions relates only to the theoretical properties of these auctions.
Other research deals with auctions that are generally run at the instigation of public or regulatory agencies, during which certain rare resources or rights of use have been put up for sale. An important example concerns the rights of use for radio-telecommunication frequencies: GSM or UMTS frequencies. In both cases, no concrete auction mechanism has been proposed for controlling the resource allocation process.
To date, there is only one known concrete process that addresses the problem in which we are interested.
It is an auction mechanism that will hereinafter be referred to as “PSP,” the acronym for “Progressive Second Price,” proposed and digitally tested by Nemo Semret (Semret N., Market Mechanisms for Network Resource Sharing, Philosophy Doctorate at Columbia, 1999), in the course of research for a dissertation at Columbia University in 1999. “PSP” is an auction mechanism that attempts to generalize the Vickrey principle to the case of a multi-unit resource.
By using the exclusion-compensation principle (which is the principle that underlies the self-revelation properties of Vickrey auctions) in the case of a multi-unit asset, a “player” who obtains a certain quantity of a resource pays the price that these whom he caused to lose by his presence were prepared to pay for a certain quantity of the resource. The total of this quantity corresponds at must to the quantity he has obtained. It is, of course, the “players” who have made the highest bids who obtain the asset.
The PSP auction mechanism for controlling and pricing a resource is disclosed in International application published on Sep. 28, 2000 as WO 00/57323.
The mechanism for allocating and pricing a resource defined by PSP auctions works through an iterative negotiation process among the following three types of parties:

    
    
        1. The logical selling agent of the resource, which is trying to sell this resource at the best price (i.e., the price that will maximize his income and hence the highest price possible),
        2. Buying agents who wish to obtain a certain quantity of this resource under the best conditions. A best condition is characterized by a pair (quantity, price) and it depends on each player.
        3. The logical mediating agent (or auctioneer), whose objective is to succeed in best satisfying the two preceding parties involved.
    
    


The role of the logical mediating agent (auctioneer) can be held by the seller of the resource.
In theory, the PSP auction mechanism does result in an equilibrium, but it has some disadvantages.
First of all, the convergence speed is not very satisfactory. Even assuming a constant number of buyers, it requires many iterations of the negotiation process to reach the equilibrium ensuring maximum satisfaction for all of the buyers.
Operationally, this convergence defect results in:
either a high volume of messages between the buyers and the auctioneer (heavy signalling traffic in the system) and many calculations performed by the buyers and the auctioneer in the case where it is decided to increase the frequency of iterations in order to reach equilibrium more quickly, or
a degradation of the process with respect to its optimal equilibrium if the frequency of the renegotiations is limited (every minute or more). The buyers cannot return any counterbids before this minimum delay.
In the case of a dynamic operation, the buyers enter and exit the system continuously. The time between two renegotiations can become on the same order of magnitude as the average time between the arrival or departure of a new buyer. Under these conditions, the iterative PSP negotiation process will never achieve the equilibrium of maximum satisfaction for the buyers. It will always be in a transitory state, possibly far from the state of optimal equilibrium.
Another disadvantage is that the PSP process as described by Nemo Semret permits buyers to form a coalition in order to pay less. It is also possible for the seller to act on the mechanism in order to maximize his income based on bids declared by the other buyers.
These two disadvantages caused by the iterative nature of the mechanism are particularly bothersome with respect to the impartiality that any auction mechanism must imperatively maintain.
SUMMARY OF THE INVENTION
The object of the present invention is to propose a method that does not have the disadvantages of the prior art.
According to the invention, the step for determining the quantity of a resource allocated to each buying agent is completed in a single round of bidding.
The invention more particularly concerns a method for the allocation and pricing of a resource among n buying agents during an auction bid, by a system for managing said resource, through a telecommunication network. A bid is received which was sent by each buying agent in the form of a resource demand function si(p), in which p is the variable price (a bid is a message that contains a demand function), these demand functions being predefined positive decreasing and continuous functions. All of the bids are processed which were received during a predetermined period corresponding to a round of bidding, in order to determine the quantity of a resource to be allocated to each buying agent. This processing includes calculating a datum corresponding to the equilibrium price p* from the sum S of the n demand functions si(p) by means of the relation: S(p*)=Q, in which Q is the available quantity datum, and S(p) is the total demand corresponding to the sum of the demands si(p) from each buying agent for each price value p, as expressed by

S(p)=s1(p)+s2(p)+ . . . + si(p)+ . . . + sn(p).

The data corresponding to the quantity ai to be allocated for this equilibrium price p* to each buying agent i is calculated based on its demand function si such that ai=si(p*). The management system utilizes the data obtained from the calculation of ai to allocate the corresponding quantities of resources, and this data is stored in order to calculate the price to be billed to each buying agent.

According to another feature, the method includes programming the demand function si(p) into each buying agent.
According to another feature, the method includes programming a function U′i(q) into the buying agent i, each buying agent i participating in an auction thus being characterized by its interest in obtaining a quantity q of the global resource Q, through its utility function Ui(q) or through a marginal utility function U′i(q) provided for the acquisition of an additional unit, U′i(q) being the derivative of Ui(q). In each auction the demand function si(p) is calculated by calculating the inverse of the function U′i(q), the buying agent sending its bid by sending this function.
According to another feature, the demand function includes supplying the management system with data corresponding to m parameters characterizing this demand function.
According to another feature the utility function is a polynomial function with the form:




  
    U
    ⁡
    
      (
      q
      )
    
  
  =
  
    
      
        min
        ⁡
        
          (
          
            q
            ,
            
              q
              max
            
          
          )
        
      
      *
      
        (
        
          
            q
            max
          
          -
          
            0
            ⁢
            
              ,
            
            ⁢
            5
            *
            
              min
              ⁡
              
                (
                
                  q
                  ,
                  
                    q
                    max
                  
                
                )
              
            
          
        
        )
      
    
    α
  




which yields a demand function S(p)

S(p)=max(0; qmax−αp)

where p is the (marginal) price that the buyer is prepared to pay for an additional unit of a resource beyond q=s(p).
According to another feature, the utility function is a polynomial function with the form:




  
    U
    ⁡
    
      (
      q
      )
    
  
  =
  
    
      
        min
        ⁡
        
          (
          
            q
            ,
            
              q
              max
            
          
          )
        
      
      *
      
        (
        
          L
          ⁢
          
            
          
          ⁢
          
            n
            ⁡
            
              (
              
                
                  q
                  max
                
                -
                
                  L
                  ⁢
                  
                    
                  
                  ⁢
                  
                    n
                    ⁡
                    
                      (
                      
                        min
                        ⁡
                        
                          (
                          
                            q
                            ,
                            
                              q
                              max
                            
                          
                          )
                        
                      
                      )
                    
                  
                
                +
                1
              
              )
            
          
        
      
    
    α
  




    
    
        Ln is the neperian logarithm, which yields a demand function S(p)

S(p)=qmax*exp(−α*p)

where p is the (marginal) price that the buyer is prepared to pay for an additional unit of a resource beyond q=s(p).

    
    


According to another feature, the buying agent sends its bid, supplying only two parameters (m=2) characterizing its demand function, these parameters being the coefficient a indicating the buyer's predisposition to pay and qmax indicating the maximum quantity he wishes to acquire. This bid may be the same for several successive auctions.
According to another feature, the calculation of the price to be billed to each buying agent includes a calculation of the total price Ci(s) of the quantity ai allocated to a buying agent i for the obtainment of the quantity ai when the latter has bid the function si, based on the exclusion compensation principle, this calculation being based on the following relation:




  
    C
    i
  
  =
  
    
      ∑
      
        j
        ≠
        i
      
    
    ⁢
    
      
        ∫
        
          a
          j
          s
        
        
          a
          j
          0
        
      
      ⁢
      
        
          
            S
            j
            
              -
              1
            
          
          ⁡
          
            (
            p
            )
          
        
        ⁢
        
          d
          p
        
      
    
  




in which, for the buying agent j, ajs represents its allocation in the presence of the buying agent i and aj0 represents its allocation in its absence, the competing buyers j in this case being allocated the quantity aj0, whereas they have only ajs in the current situation due to its presence, sj−1 being the inverses of the demand functions of the buying agents j competing with the buying agent i.

In one preferred implementation of the invention applied to a tree network formed of a set E containing N arcs, each arc e of the network having its own total quantity of resource Qe, the method includes the following steps:

    a) for each user i, identifying the set Ei of arcs k of the network in the path that the user i requests to take,
    b) obtaining his demand function






  
    s
    i
  
  (
  
    
      ∑
      
        k
        ∈
        
          E
          i
        
      
    
    ⁢
    
      p
      k
    
  
  )




relating to the set Ei of arcs k, preferably contiguous, that he requests to take, pk being the price level or arc k,

    c) repeating steps a) and b) for the set I of users i soliciting the network,
    d) classing the demand functions by arc e of the network, according to the total quantity of resource Qe available on this arc e, in order to formulate a system of N equations with N unknowns pk of type:






  {
  
     
    
      
        
          
            
              ∀
              
                e
                ∈
                E
              
            
            ,
          
        
      
      
        
          
            
              
                ∑
                
                  i
                  ∈
                  
                    I
                    /
                    e
                  
                  ∈
                  
                    E
                    i
                  
                
              
              ⁢
              
                
                  s
                  i
                
                (
                
                  
                    ∑
                    
                      k
                      ∈
                      
                        E
                        i
                      
                    
                  
                  ⁢
                  
                    p
                    k
                  
                
                )
              
            
            =
            
              Q
              e
            
          
        
      
    
  




    e) solving the system of equations to obtain N equilibrium prices p*e each associated with an arc e of the network, and
    f) estimating, for each user i, preferably the same quantity ai of the resource on each arc k among the set of arcs Ei that this user i takes, deduced from his demand function si applied to the sum of the equilibrium prices p*k each associated with a taken arc k, according to the relationship:






  
    ∀
    
      i
      ∈
      I
    
  
  ,
  
    
      a
      i
    
    =
    
      
        s
        i
      
      (
      
        
          ∑
          
            k
            ∈
            
              E
              i
            
          
        
        ⁢
        
          p
          k
          *
        
      
      )
    
  




According to another feature, the management system is a telecommunication resources management system and the resource is bandwidth.
The invention also concerns a system for managing a resource comprising means for allocating and pricing said resource among n buying agents during an auction bid, through a telecommunication network. This means includes means for receiving a bid sent by each buying agent in the form of a resource demand function si(p), in which p is the variable price, these demand functions being predefined positive decreasing and continuous functions, and means for processing all of the bids received during a predetermined period corresponding to a round of bidding, in order to determine the quantity of a resource to be allocated to each buying agent. The processing means includes means for calculating a datum corresponding to the equilibrium price p* from the sum S of the n demand functions si(p), by means of the relation S(p*)=Q, in which Q is the available quantity datum, and S(p) is the total demand corresponding to the sum of the demands si(p) from each buying agent for each price value p, as expressed by S(p)=s1(p)+s2(p)+ . . . + si(p)+ . . . + sn(p). The processing means also includes means for calculating the data corresponding to the quantity ai to be allocated for this equilibrium price p* to each buying agent i based on its demand function si such that ai=si(p*), and means for allocating the corresponding quantities of resources and for staring this data in order to calculate the price to be billed to each buying agent.
According to another feature, the means for allocating and pricing the resource are comprised of a server type computer programmed for this purpose, said server being linked to the equipment of the telecommunication network in charge of controlling the resource that is to be shared.
According to another feature, the buying agents include means for storing at least one demand function and means for bidding with this function in each auction.
According to another feature, in the case where the demand function is characterized by only two parameters, the buying agents include means for choosing a pair of values for the parameters in each auction and for providing it to the server.
According to another feature, the buying agents are comprised of automata programmed to make the bids in accordance with the buyer and to dialog with the server.
According to another feature, the automata are constituted by software agents that can be placed in the server.
In one preferred embodiment of the invention applied to a tree network and formed of a set E having N arcs, each arc e of the network having its own total quantity of resource Qe, the system additionally includes:

    
    
        means for identifying, for each user i, the set Ei of arcs k of the network in the path that the user i requests to take,
        means for analyzing requests in order to obtain the demand function
    
    






  
    s
    i
  
  (
  
    
      ∑
      
        k
        ∈
        
          E
          i
        
      
    
    ⁢
    
      p
      k
    
  
  )




of the user i, regarding the set Ei of arcs k that he requests to take, pk being the price level or arc k,

    
    
        calculation means for:
        solving a system of equations, for the set I of users i soliciting the network, governing the set of demand functions of users according to the respective resources Qe available on each arc e:
    
    






  {
  
     
    
      
        
          
            
              ∀
              
                e
                ∈
                E
              
            
            ,
          
        
      
      
        
          
            
              
                ∑
                
                  i
                  ∈
                  
                    I
                    /
                    e
                  
                  ∈
                  
                    E
                    i
                  
                
              
              ⁢
              
                
                  s
                  i
                
                (
                
                  
                    ∑
                    
                      k
                      ∈
                      
                        E
                        i
                      
                    
                  
                  ⁢
                  
                    p
                    k
                  
                
                )
              
            
            =
            
              Q
              e
            
          
        
      
    
  




the said system having N equations with N unknowns pk and admitting N solutions corresponding to equilibrium prices p*e each associated with an arc e of the network,

    
    
        and estimating, for each user i, the resource ai to be allocated to this user, corresponding preferably to substantially the same quantity ai of the resource on each arc k among the set of arcs Ei that this user i takes, deduced from his demand function si applied to the sum of the equilibrium prices p*k each associated with a taken arc k, according to the relationship:
    
    






  
    ∀
    
      i
      ∈
      I
    
  
  ,
  
    
      a
      i
    
    =
    
      
        s
        i
      
      (
      
        
          ∑
          
            k
            ∈
            
              E
              i
            
          
        
        ⁢
        
          p
          k
          *
        
      
      )
    
  




In the case where the invention is applied to the telecommunications field, the resource to be allocated can be bandwidth, or the ports of a piece of equipment for accessing a network.



BRIEF DESCRIPTION OF THE DRAWINGS
Other features and advantages of the invention will clearly emerge through the reading of the description that is given below as a non-limiting example and in reference to the drawings, in which,
FIGS. 1A and 1B represent a utility function U1 and its derivative U′i (marginal utility),
FIGS. 2A and 2B represent three examples of a utility function for the same maximum quantity (qmax), and the corresponding marginal utilities,
FIG. 2C represents the demand functions corresponding to the marginal utility functions of FIG. 2B;
FIG. 2D represents two particular examples of utility functions;
FIG. 2E represents the demand functions corresponding to the utility functions of FIG. 2D;
FIG. 3 represents an example of the demand functions s1, s2 of two buyers;
FIG. 4 schematically illustrates the method for calculating the pricing for this simple example with two buyers;
FIG. 5 illustrates the general diagram of a system for implementing the method;
FIG. 6 illustrates a diagram of an embodiment of a buying agent.
FIG. 7A illustrates a network with three contiguous arcs;
FIG. 7B illustrates a network with three arcs in star form; and
FIG. 8 illustrates a network with two contiguous arcs.



DETAILED DESCRIPTION OF THE DRAWINGS
In the first instance, a network made up of a single arc between an “entry” and an “exit” point is considered.
To begin with, it should be noted that each time price is mentioned above, and each time it is mentioned below, it does not indicate a sum of money in “the absolute”, but a price per unit of time used. In the case of a telecommunication network resource, the sum that the buyer must pay will therefore be the product of this unit price and the time during which he remains connected to the network.
We must, of course, also consider the potential variations in the unit price during the connection period. Moreover, the price to be paid by the buyer is not necessarily monetary. It could involve “credits” or “tokens” that the buyer may have acquired when he subscribed to a service, or that he may have bought through a system like a prepaid card.
The proposed auction mechanism for allocating and pricing a multi-unit resource among several buyers is based and the fact that each buyer i has an interest in receiving a part (quantity) a1 of the total resource Q. The mechanism makes it possible to allocate the “right” quantities a1 of the resource to each of the buyers for a charge to be paid Ci.
In the proposed method, each buyer is induced to provide his real evaluation (or even his utility) in order to obtain the quantity of the resource (in the buyer's case), or the price at which he is prepared to sell the resource (in the seller's case).
In essence, the selling agent is considered a buying agent that buys the entire quantity of the resource Q. He can avoid selling the resource for less than a minimum limit price. The risk of this operation is that a certain quantity of resource may not be said (having been bought by him).
The proposed mechanism adapts to variations in the number of buyers and to their predisposition to pay for the resource. There may be off-peak periods with few buyers and peak periods with many more buyers.
The proposed mechanism therefore allows the demand from the buyers to be regulated in accordance with the constant supply of a resource Q through a variable bid price.
In order to obtain a significant quantity of a resource during a peak period, the buyer must agree to pay a higher price. Conversely, during off-peak periods, he can obtain a large quantity of a resource for a more moderato price.
The mechanism according to the invention is not iterative. It results in an equilibrium of better satisfaction for the buyers in a single round of bidding (a single iteration), during which the buyers bid the real evaluation they have made as to the value of the resource.
Furthermore, the proposed mechanism uses the principle of Vickrey auctions in the multi-unit case by employing the pricing principle based on exclusion-compensation.
This auction mechanism works in the following way:

    
    
        a seller has any quantity Q of a resource or a divisible asset to sell.
    
    


Typically, in a telecommunication or network application, this could be bandwidth, or even logic gates for accessing a piece of equipment.

    
    
        n buyers are demanders, which means that they are in competition for the sharing of this resource. Each of them positions himself based on a utility function Ui for the quantity q he wishes to have.
    
    


In essence, this is the buyer's evaluation of his interest in a certain quantity of a resource.
The choice of a utility function could be left entirely up to the buying agents, but for purposes of practical implementation, we prefer to propose that the buyer position himself based on a choice of utility functions predefined in the automaton programmed for this purpose for the negotiation.
The buyer's utility function Ui(q) makes it possible to deduce his demand function si(p). In concrete terms, a buyer's demand function is the inverse of the marginal utility function U′i(q). Consequently, there is a slight misuse of language here, since the demand function thus constructed yields the value of a buyer's demand q as a function of the marginal price that this buyer is prepared to pay for the resource between q and q+δq, where δq is a small quantity, whereas more traditionally, a demand function yields a quantity q of a resource that the buyer is prepared to acquire as a function of an average price of the resource.
The negotiator of the sale, or auctioneer, (the server 200 in FIG. 5) collects the demand functions si(p) from the various buyers and knows the total quantity Q for sale.
In order to bid, a buyer gives his demand function si(p), which could in practice be the inverse of his marginal utility function for the resource.
The buyers can of course declare an insincere demand function (not tell the truth, i.e., not reflect their real evaluation of the resource). However, the method according to the present invention implements a mechanism for calculating resource allocation and billing that induces each buyer to bid the truth since it maximizes the gain function for each buyer.
The buyer's gain function g represents the difference between the utility that procures him the acquisition of a quantity of a resource and the price that he must pay for this quantity, i.e. g(s)=Ui(ai(s)−ci(s)). The applicant has demonstrated that declaring his true demand function is a dominant strategy for each buyer.
According to the invention, each buyer i consequently has an evaluation for the acquisition of a quantity qi of a resource, which translates into a utility function Ui(q)=0; this evaluation is in fact private data. Calculating the derivative of this function, U′i(q), yields the marginal utility function provided by the buyer i upon acquisition of an additional unit of a resource.
In mathematical terms, the function Ui(q) is characterized by meeting the following conditions:

    
    
        Ui(0)=0,
        Ui is derivable and concave,
        U′I≧0 is decreasing and continuous. It is a function derived from the function Ui. It characterizes the marginal utility of the buyer i for the resource i, i.e. the price he is prepared to pay to obtain a unit of the resource beyond what he has already obtained.
    
    


FIGS. 1A and 1B illustrate a general form of the functions Ui(q) and U′i(q).
As may be seen, the utility function of a buyer 100i (FIG. 5) increases continuously with the quantity he can obtain, but this increase is sublinear (concave). This means that as the quantity obtained increases, the interest in any additional unit decreases. In the extreme, there is a limited quantity of a resource (a threshold) for each buyer, beyond which this buyer has no further interest in (i.e., is no longer prepared to pay for) obtaining an additional unit.
For each negotiation step (with each new auction), the server 200 collects all of the bids in the form of demand functions si (one function per buyer i).
From this information, the auctioneer 200 determines for each price value p the total demand S, which is the sum of the individual demands. The auctioneer 200 calculates a market equilibrium price p* which equalizes the supply and the demand such that:

    
    
        S(p*)=Q. Q represents the entire quantity for sale, which is therefore the total supply.
    
    


Having thus defined the market price p*, the auctioneer 200 can then calculate the resource allocations a1, a2, . . . , ai, . . . , an for each player by performing the following calculation:

    
    
        ai=si(p*) for each buyer (i=1 through n)
    
    


Using this calculation, the auctioneer determines, as the allocation to each buyer, the value of his demand function for the price p*.
The auctioneer 200 assigns each buyer an allocated quantity a1 thus calculated, and also informs them of the fictitious market equilibrium price that serves as the basis of the mechanism.
Some buyers may net be served; in fact, for the price p* some buyers j may have zero demand, i.e., sj(p*)=0.
This allocation negotiation step is repeated at predefined regular intervals during the operation of the resource allocation-pricing system.
The frequency of repetition of the negotiation is chosen so as not to be too high, in order not to use too many computing resources and/or congest the network with signalling messages between the buyer's software 100i and the server 200. This frequency should nevertheless be enough to accommodate the following developments: arrivals or departures of buyers, changes in current buyers' demand functions, and possibly, variations in the quantity of the resource available.
A second step of the method then includes calculating the corresponding pricing, i.e. determining the charges to be paid for each buyer i. This pricing is obtained from the result of the following integral calculation:




  
    
      C
      i
    
    ⁡
    
      (
      s
      )
    
  
  =
  
    
      ∑
      
        j
        ≠
        i
      
    
    ⁢
    
      
        ∫
        
          a
          j
          s
        
        
          a
          j
          0
        
      
      ⁢
      
        
          
            s
            j
            
              -
              1
            
          
          ⁡
          
            (
            p
            )
          
        
        ⁢
        
          d
          p
        
      
    
  




This relation yields the total price Ci(s) that the buyer i must pay to obtain the quantity ai(s) determined in the preceding step, when the bid is s. For the buyer j, ajs represents his allocation in case of the presence of the buyer i, and aj0 represents his allocation in the case where the latter is absent. (If the buyer i were not present, then the competing buyers j would be allocated the quantity aj0 whereas they have only ajs in the current situation due to his presence.)
The calculation of the charge involves the inverse function sj−1 of the demand function sj of the competitors j, since what is sought is a price as a function of an already defined quantity and not a quantity as a function of a price.
Two examples of utility functions and the corresponding demand functions are given below.
It is understood that any utility (and demand) function could be chosen as long as it fulfils the conditions indicated above. These functions can be characterized by m parameters, corresponding for example to the choice of a certain number of characteristic points resulting from a discretization (digitization) of the function.
In a first example, the utility function can be the following polynomial function:




  
    U
    ⁡
    
      (
      q
      )
    
  
  =
  
    
      
        min
        ⁡
        
          (
          
            q
            ,
            
              q
              max
            
          
          )
        
      
      *
      
        (
        
          
            q
            max
          
          -
          
            0
            ⁢
            
              ,
            
            ⁢
            5
            *
            
              min
              ⁡
              
                (
                
                  q
                  ,
                  
                    q
                    max
                  
                
                )
              
            
          
        
        )
      
    
    α
  




which yields a demand function S (p)

S(p)=max(0; qmax−α*p)

where p is the (marginal) price that the buyer is prepared to pay for an additional unit of a resource beyond q=s(p).
In this first example, each buyer i has a polynomial evaluation function Ui (of degree 2) up to the point corresponding to the maximum quantity qmax of the buyer i, beyond which this function is constant.
In another example, the utility function can be the following exponential polynomial function:




  
    U
    ⁡
    
      (
      q
      )
    
  
  =
  
    
      
        min
        ⁡
        
          (
          
            q
            ,
            
              q
              max
            
          
          )
        
      
      *
      
        (
        
          
            L
            ⁢
            
              
            
            ⁢
            
              n
              ⁡
              
                (
                
                  q
                  max
                
                )
              
            
          
          -
          
            L
            ⁢
            
              
            
            ⁢
            
              n
              ⁡
              
                (
                
                  min
                  ⁡
                  
                    (
                    
                      q
                      ,
                      
                        q
                        max
                      
                    
                    )
                  
                
                )
              
            
          
          +
          1
        
        )
      
    
    α
  




in which Ln is the neperian logarithm, which yields a demand function S(p)

S(p)=qmax*exp (0; −α*p)

where p is the (marginal) price that the buyer is prepared to pay for an additional unit of a resource beyond q=s(p).
In these two cases, the utility function and the marginal utility function U′i (the function derived from Ui), and consequently the demand functions (the inverse function of the marginal utility), can be characterized by only two parameters qmax and α, in which:

    
    
        qmax is the maximum quantity of a resource beyond which the buying agent is no longer prepared to pay to obtain the additional resource (zero marginal utility) and
        α characterizes the buyer's level of interest in the resource. The higher the α, the more this interest decreases rapidly with the price of the resource. It is a coefficient indicating the buyer's predisposition to pay.
    
    


If planning to use several types of predefined functions (function 1, 2, 3, etc.), it is in fact necessary to provide 3 parameters, the parameters as defined above and a third parameter designating the type of function chosen (function 1 or 2 or 3 from the list of predefined functions).
FIG. 2D illustrates the utility functions corresponding to the two preceding examples. FIG. 2E illustrates the demand functions corresponding to the two utility functions of FIG. 2D.
In these examples, the buyers no longer need to declare to the auctioneer 200 fully defined demand functions for all the possible quantities, but simply the two parameters, qmax and α (each buyer bids his demand function).
The bid therefore consists of providing two parameters, i.e., in this case, the pair (qmax, α).
In the case of a mechanism for auctioning bandwidth, the value of qmax corresponds to the maximum capacity required by the buyer. The coefficient α itself is chosen from a set of pre-stored values and corresponds to the buyer's desire to obtain this maximum capacity (preparedness to pay more in order to obtain more)
FIGS. 2A and 2B show the behavior exhibited by the utility function and its derivative for three buyers having the same maximum quantity value.
The coefficient α corresponds to the slope of the lines (demand function) of FIG. 2C.
However, rather than leave it up to the buyer to choose any utility function that has the increasing and continuous properties indicated above, it is advantageously proposed that the buyer position himself based on a limited choice of possibilities.
This choice includes, in accordance with these two parameters, the maximum capacity required by the buyer and the level of the buyer's predisposition as to the price to be paid in order to best obtain this maximum capacity.
It is also possible to provide for a choice of several predisposition parameters to be proposed.
It is possible, for example, to program the definition of several classes of service: “gold” for a predetermined value of α, “silver” for another value, or “bronze” for yet another value.
The “gold” class corresponds to a stronger predisposition to pay than the “silver” class, which corresponds to a stranger predisposition to pay than the “bronze” class.
We will now describe these mechanisms in detail, in order to provide a better understanding by means of a simple example in which there are only two buyers.
In the example that is given, the buyer 1 has a maximum quantity qmax higher than that of the buyer 2, but his predisposition to pay is lower (these are values that the buyer sets for himself at the time of the auction). From this collected information, the auctioneer 200 calculates (for each price value p) the sum S of these two demand functions.
The auctioneer 200 can then determine an equilibrium price, based an the Walrasian equilibrium market price theory (this is well known and, therefore, details thereof are not deemed necessary) that equalizes the supply and the demand. This price corresponds to the value of p* such that S(p*)=Q. In fact, S(p*) actually corresponds to the total demand for the price p* and Q is by definition the quantity of the resource offered. Knowing p*, it is possible to determine the allocations a1 and a2 for each of the buyers. Each buyer obtains the quantity corresponding to its demand function for the price p*, i.e.: a1(s)=s1(p*) and a2(s)=s2(p*).
FIG. 3 illustrates the allocation step just described in the case of two buyers whose demand functions are affine (polynomial utility function of order 2).
The second step of the method consists of calculating the charge to be paid for each of the buyers. This step employs the exclusion-compensation principle. According to this principle, the buyer 1 must pay the price that the buyer 2 has declared himself prepared to pay in order to obtain the quantity that he would have had without the presence of the buyer 1.
In this simple example, the buyer 1 declares himself prepared to pay the inverse of s1.
In essence, s1(p) represents the quantity demanded by the buyer 1 if the selling price is p. If the buyer 2 were absent from the sale, the buyer 1 would have received his maximum quantity demanded, which will be designated q1. In order to go from his allocation a1 to his maximum quantity q1, the buyer 1 declares himself prepared to pay the integral of the inverse of s1. The calculation of an integral is performed when going from a marginal price to a total price.
FIG. 4 illustrates these operations; the surface area of the hatched area referenced Z2 corresponds to the result.
Because of the application of the exclusion-compensation principle in order to calculate this billing, the buyers have an incentive to bid their true demand function because this maximizes their gain function g as defined above (i.e., the utility, for a reduced quantity of a resource, of the charge to be paid in order to obtain this quantity).
This mechanism will hereinafter be called WSP (Walrasian Second Price) because it is based on the Walrasian equilibrium and on the principle of second price auctions.
The advantage of this WSP mechanism is that it has the “right” particular properties required of any auction mechanism without having the aforementioned disadvantages:

    
    
        It is workable in the sense that a buyer is never billed more than he has declared himself prepared to pay.
        There is a “discount” effect: the larger the quantity a buyer obtains, the lower the unit price he actually pays.
        Each player is induced to bid his true demand function.
    
    


FIG. 5 schematically illustrates the system for implementing the method. It can be, for example, a telecommunications resource management system.
A practical embodiment of the operational implementation of the auction mechanism just described is achieved through a set of automata or software buying agents 100i. Each buyer i (but also the seller) programs his utility function and consequently his demand function (defined by only two parameters in the examples indicated) into his automaton or software agent 100i. 
In fact, these functions can be predefined and in that case the buying agent has only to choose one of them. These buying agents dialog with the server 200 to negotiate their resource allocation and the charge to be paid for this resource by setting the bid in each auction.
The server 200 or resource management system is linked to a telecommunication network 300 and to the buying agents 100i by linking means 210 and 110. This server 200 includes an automaton programmed to perform the aforementioned calculations implementing the mechanism described. This automaton includes a processing unit of the processor type 201, storage means 202, and an input-output interface 204. The automaton includes links with the outside 210 to the network 300 and 110 to the buying agents 100i. 
FIG. 6 illustrates an exemplary embodiment of an automaton installed in the buying agent 100i. This automaton includes a processor 101 linked to storage means symbolized by the block 102. These storage means comprise at least one random access working memory, a program memory of the ROM or EEPROM type containing the program for providing the buyer's utility and demand functions and for dialoguing with the server. The processor 101 and the memories 102 are linked by a bus 103, itself linked to an input-output port to a communication link 110 with the server 200.
These software agents 100i can be located near the buyer i, i.e., in the buyer's control terminal, when the latter wishes to have continuous interaction with its demand function.
In the case where a buyer's demand function remains stable, the buyer's software negotiating agent can be located in the server 200.
In the diagram of FIG. 5, the shared resource Q corresponds to the bandwidth of the link shown between the server and the “network.”
The advantage of locating the buyer's software negotiating agent in the server lies in reducing the flow of control information flowing back and forth between the server and the buying agents and in accelerating the dialog between the negotiating automaton of the buying buyer and the server. When a buying agent is located near the server, it does not generate any central messages in the network.
The server handles all of the bids from the buyers and calculates the result of the auction using the mechanism described.
In the case of the sharing of the bandwidth of a link, the auctioneer can be a software server located in the concentration router or any other concentration equipment
After making its decision, the auctioneer then actuates the equipment (in the above-mentioned example, the concentration router) so that it allocates the quantity decided upon to each of the buyers. The charges to be paid are also stored in order to be furnished to the server responsible for the billing. This translates into an incrementation of the buyer's account by the sum to be paid or a decrementation of the number of “tokens” credited to the buyer's account. For this purpose, the mediating server (auctioneer) communicates the necessary information to the server responsible for the billing.
For other resources, this could be a dedicated server. It should be noted that the server and the automata are connected by links of the network and therefore use the network resource (bandwidth).
Because the method of the invention determines an equilibrium of the allocations and the prices in a single operation, it limits the utilization of the resource, unlike PSP auctions, which are iterative.
The method of the invention is fully adapted to dynamic operation. Buyers can connect in order to participate in the auction at any time. The mechanism then makes it possible to recalculate the allocation and the charge to be paid by each.
Unlike in PSP auctions, equilibrium is reached automatically because the buying automata de not bid the demand functions that correspond to their evaluation of the resource bit by bit, but directly. A buyer who holds the resource can nevertheless be ousted by the arrival of a new competing buyer.
Since the buyers can “enter” and “exit” at any time, the invention provides for transactions to be performed in money-time units. The auction prices and charges to be paid are calculated in time units. For example, the buyers pay x Dollars per megabits per second obtained. If this were not the case, a buyer who held a quantity of a resource for only a few seconds (i.e., when other buyers have arrived and have “confiscated” part or all of his resource through a higher bid), would pay the same price as though he had held this same quantity for several days.
The minimum time pricing unit can be the time increment between two renegotiations of the bid: the minimum holding time of the resource.
The mechanism can be designed so that it is not necessary to require the “satisfied” buyers to rebid at each renegotiation. The auctioneer can essentially assume their demand function to be constant by default.
In order to detect a buyer's departure, it is possible to provide for the resending of all the demand functions by the buyer's negotiating automata at each stage. This simple means makes it possible to detect a departure.
As we have seen, by bidding only once during a negotiation, an equilibrium is reached in which the buyers bid their true demand function and hence their true evaluation function. The fact that the equilibrium sought by any auction mechanism is reached in a single iteration constitutes a considerable advantage relative to the existing mechanisms.
Added to this advantage is the advantage ever the ether mechanisms proposed, that the mechanism requires fewer technical hypotheses on the characteristics of the buyers. The only hypothesis made is that the demand functions must be decreasing, which is completely natural. It is unimaginable that a buyer would be prepared to pay more for the resource (in the sense of the unit price) when the quantity he is demanding increases. This would run counter to the “discount” effects that are normally encountered. Finally, unlike in the iterative method of PSP auctions, the buyers are not informed at each iteration of the bids made by their competitors. In fact, it has been demonstrated that this information would permit collusion among buyers in order to pay less, and other drawbacks such as the possibility for the seller to maximize his income based an bids declared by all of the buyers. These phenomena can, in the end, induce buyers to “lie” in order to gain the advantage (by not declaring their true evaluation function, or even cheating), which completely calls into question the interest and the relevance of the auction system (loss of confidence on the part of the buyers).
It is quite the opposite with the method just described, since the mechanism does not in any way reveal what has been bid by a buyer and his competitors. Only the auctioneer knows the demand functions of the various buyers, and it is of course possible to secure the negotiation process in order to guarantee this confidentiality. Nevertheless, the auction mechanism remains transparent. By returning to each buyer the value of the “fictitious” equilibrium price p* it has calculated, the auctioneer can “explain” the allocation and the calculation of the charge it has performed. The unit charge to be paid (i.e., Ci(s)/ai) for a buyer is actually lower by design than this fictitious marginal price p*.
In a general way, the resource allocation described above applies, as indicated previously, to a “simple” network made up of a single arc between two nodes: one entry node and one exit node. Implementing such a method thus makes it possible to optimize the allocation of available resources on this arc among several users.
In one implementation in which the network is arranged as a plurality of arcs, each connected to two nodes, in a tree-like and preferably meshless manner, all the arcs of the network that are capable of being solicited by the users must be considered.
Thus, several users may desire to use together and at the same time one or more same arcs of the network, even if the network paths taken are different from one user to the other. Each arc AB, BC (FIG. 8) of the network is said to constitute a “market deal” for which it is sought to evaluate an equilibrium price p*1, p*2 for a total resource quantity Q1, Q2 available on this arc AB, BC (respectively). Thus, a user who requests a resource in order to “pass” via the arc AB (“going” from A to C) ends up interfering with the request of a user (“going” from A to B) who for his part is only concerned with the resource of this arc AB (or with only a part of the total resource Q1 of this arc).
With reference to FIG. 8, by considering two contiguous arcs AB and BC, three user categories can be differentiated:

    
    
        a first category which is concerned only with the resource of the arc AB,
        a second category which is concerned only with the resource of the arc BC,
        a third category which is concerned both with the resource of the arc AB and with the resource of the arc BC. Finally, this category concerns users who wish to pass from entry node A of the arc AB to the exit node C of the arc BC.
    
    


To simplify, in the first instance, the mechanisms involved, only three users are considered who belong respectively to the three abovementioned categories. The demand function f1 of the first user who is concerned only with the resource of the arc AB depends only on the price p1 associated with the arc AB. Likewise, the demand function f2 of the second user who is concerned only with the resource of the arc BC depends only on the price p2 associated with the arc BC. However, the demand function f3 of the third user who is concerned both with the arc AB and the arc BC depends both on the price p1 and on the price p2.
In particular, in the first instance, the aim is to calculate the equilibrium price p*1 and p*2 of each arc AB and BC as functions of both the total resources Q1 and Q2 available on this arc. The interaction between the request of the third user and those of the first two users is expressed in equation form according to the following system:




  {
  
     
    
      
        
          
            
              
                f
                ⁢
                
                  
                
                ⁢
                1
                ⁢
                
                  (
                  
                    p
                    1
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                3
                ⁢
                
                  (
                  
                    
                      p
                      1
                    
                    +
                    
                      p
                      2
                    
                  
                  )
                
              
            
            =
            
              
                Q
                1
              
              ⁢
              
                
              
              ⁢
              for
              ⁢
              
                
              
              ⁢
              the
              ⁢
              
                
              
              ⁢
              arc
              ⁢
              
                
              
              ⁢
              AB
            
          
        
      
      
        
          
            
              
                f
                ⁢
                
                  
                
                ⁢
                2
                ⁢
                
                  (
                  
                    p
                    2
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                3
                ⁢
                
                  (
                  
                    
                      p
                      1
                    
                    +
                    
                      p
                      2
                    
                  
                  )
                
              
            
            =
            
              
                Q
                2
              
              ⁢
              
                
              
              ⁢
              for
              ⁢
              
                
              
              ⁢
              the
              ⁢
              
                
              
              ⁢
              arc
              ⁢
              
                
              
              ⁢
              BC
            
          
        
      
    
  




This is a system of two equations with two unknowns p1 and p2 which system admits two non-trivial unique solutions p*1 and p*2, provided that the demand functions fi are continuous and strictly decreasing when they are positive.
It is necessary to specify a point which arises from the above classification of users in various categories. It is understood that each user of the network has a unique demand function for the arc or arcs of the network that he takes, regardless of the number of arcs taken.
Thus, by generalizing the system of equations to a set E of arcs forming the whole network considered and to a total set I of users i, the system becomes, for any arc e of the network:




  
    
      
        {
        
           
          
            
              
                
                  
                    ∀
                    
                      e
                      ∈
                      E
                    
                  
                  ,
                
              
            
            
              
                
                  
                    
                      
                        ∑
                        
                          
                        
                      
                      
                        i
                        ∈
                        
                          I
                          /
                          e
                        
                        ∈
                        
                          E
                          i
                        
                      
                    
                    ⁢
                    
                      
                        s
                        i
                      
                      (
                      
                        
                          ∑
                          
                            k
                            ∈
                            
                              E
                              i
                            
                          
                        
                        ⁢
                        
                          p
                          k
                        
                      
                      )
                    
                  
                  =
                  
                    Q
                    e
                  
                
              
            
          
        
      
    
    
      
        (
        SEQN
        )
      
    
  




where:

    
    
        I is therefore the set of users,
        si is the demand function of the user i,
        Ei is the set of arcs, including the arc e, traversed by the path that the user i takes (and therefore depends on this user i),
        pk are the N unknowns of the system to be solved in order to obtain the N equilibrium prices p*e, each associated with an arc e, N being the cardinal number of the set E,
        Qe is the total resource quantity available on the arc e, and
        E is the set of arcs of the network, as indicated above.
    
    


Each equation of the system above therefore amounts to summing all the demand functions of the users i whose path Ei passes through the arc and who, thus, request a quantity of the resource of the arc e.
Many tests have routinely shown that these N equations would admit N unique non-trivial solutions corresponding to equilibrium prices p*e for each arc e, satisfying the reality of the “market deals”.
In a later step, similar to that described above for a network made up of a single arc, a quantity ai to be allocated to each user i is calculated for the arc or arcs that he solicits, according to the relationship:




  
    ∀
    
      i
      ∈
      I
    
  
  ,
  
    
      a
      i
    
    =
    
      
        s
        i
      
      (
      
        
          ∑
          
            k
            ∈
            
              E
              i
            
          
        
        ⁢
        
          p
          k
          *
        
      
      )
    
  




It will be understood in particular that the quantity ai allocated to a user is the same, from one arc to the other, and this advantageously makes it possible to overcome network congestions. If one of the arcs could provide only a smaller quantity than those supplied by the other arcs, the quantity that the user i could actually use would correspond to this smaller quantity. To illustrate this point, consider the example of a network on which a user may have:

    
    
        a bit rate of 20 kbytes/s on a first arc that he takes,
        a bit rate of 5 kbytes/s on a second arc that he takes, and
        a bit rate of 20 kbytes/s on a third arc that he takes.
    
    


Ultimately, the bit rate from which the user will actually benefit is the lowest of the three, that is to say 5 kbytes/s.
In this implementation of the invention, since a given quantity of resource to be allocated to a user on the set of arcs of the network is evaluated, the above problem is not encountered and thus the sharing of resources is in reality optimal.
Furthermore it is noted that the mathematical expression “kεEi”, in the formulation of the above system of equations (SEQN), does not necessarily mean k=1, 2, . . . ,m where m is the cardinal number of the set Ei. This is because the indexing of the arcs of the network is defined once and for all before considering the paths taken. Thus, a user can take an arc having index 3, then an arc 7, an arc 12, etc.
In principle, the successive arcs 3, 7, 12 are contiguous, that is to say they share, in pairs, a common node without forming a mesh. However, the formulation of the system (SEQN) does not exclude the case in which the users would want to take a non-contiguous arc path, that is to say simply sections of paths in the network. This situation may be encountered when the user takes several interconnected networks, possibly belonging to two different operators. Indeed, in this case, the same demand function of the user will be applied for all the paths of the network that he takes.
To clarify this point, an example is provided below of two networks each made up of three arcs, the first represented in FIG. 7A having three contiguous arcs and the second represented in FIG. 7B having three arcs in star form.
To simplify the system of equations, it is routinely considered that the users are arranged by categories of interest (like the three categories in the above example of a network with two arcs) and that their demand functions are summed by categories.
The system of equations governing the sharing of the demand functions according to the resource available on each arc is then expressed by:




  {
  
     
    
      
        
          
            
              Q
              ⁢
              
                
              
              ⁢
              1
            
            =
            
              
                f
                ⁢
                
                  
                
                ⁢
                1
                ⁢
                
                  (
                  
                    p
                    ⁢
                    
                      
                    
                    ⁢
                    1
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                4
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                6
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
            
          
        
      
      
        
          
            
              Q
              ⁢
              
                
              
              ⁢
              2
            
            =
            
              
                f
                ⁢
                
                  
                
                ⁢
                2
                ⁢
                
                  (
                  
                    p
                    ⁢
                    
                      
                    
                    ⁢
                    2
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                4
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                5
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                6
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
            
          
        
      
      
        
          
            
              Q
              ⁢
              
                
              
              ⁢
              3
            
            =
            
              
                f
                ⁢
                
                  
                
                ⁢
                3
                ⁢
                
                  (
                  
                    p
                    ⁢
                    
                      
                    
                    ⁢
                    3
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                5
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                6
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
            
          
        
      
    
  




for the network with contiguous arcs in FIG. 7A, and by:




  {
  
     
    
      
        
          
            
              Q
              ⁢
              
                
              
              ⁢
              1
            
            =
            
              
                f
                ⁢
                
                  
                
                ⁢
                1
                ⁢
                
                  (
                  
                    p
                    ⁢
                    
                      
                    
                    ⁢
                    1
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                4
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                5
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
            
          
        
      
      
        
          
            
              Q
              ⁢
              
                
              
              ⁢
              2
            
            =
            
              
                f
                ⁢
                
                  
                
                ⁢
                2
                ⁢
                
                  (
                  
                    p
                    ⁢
                    
                      
                    
                    ⁢
                    2
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                4
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                6
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
            
          
        
      
      
        
          
            
              Q
              ⁢
              
                
              
              ⁢
              3
            
            =
            
              
                f
                ⁢
                
                  
                
                ⁢
                3
                ⁢
                
                  (
                  
                    p
                    ⁢
                    
                      
                    
                    ⁢
                    3
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                5
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      1
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
              +
              
                f
                ⁢
                
                  
                
                ⁢
                6
                ⁢
                
                  (
                  
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      2
                    
                    +
                    
                      p
                      ⁢
                      
                        
                      
                      ⁢
                      3
                    
                  
                  )
                
              
            
          
        
      
    
  




for the star network form in FIG. 7B.
For the first system of equations governing the network with contiguous arcs in FIG. 7A, the notation:

    
    
        Q1, represents the resource available on the arc AB,
        Q2, represents the resource available on the arc BC,
        Q3, represents the resource available on the arc CD,
        f1, represents the sum of the demand functions of the users who are concerned only with the resource of the arc AB and:
    
    






  
    f
    ⁢
    
      
    
    ⁢
    1
    ⁢
    
      (
      
        p
        ⁢
        
          
        
        ⁢
        1
      
      )
    
  
  =
  
    
      ∑
      
        
          E
          i
        
        =
        
          {
          AB
          }
        
      
    
    ⁢
    
      
        f
        i
      
      ⁡
      
        (
        
          p
          ⁢
          
            
          
          ⁢
          1
        
        )
      
    
  




    
    
        f2, represents the sum of the demand functions of the users who are concerned only with the resource of the arc BC and:
    
    






  
    f
    ⁢
    
      
    
    ⁢
    2
    ⁢
    
      (
      
        p
        ⁢
        
          
        
        ⁢
        2
      
      )
    
  
  =
  
    
      ∑
      
        
          E
          j
        
        =
        
          {
          BC
          }
        
      
    
    ⁢
    
      
        f
        j
      
      ⁡
      
        (
        
          p
          ⁢
          
            
          
          ⁢
          2
        
        )
      
    
  




    
    
        f3, represents the sum of the demand functions of the users who are concerned only with the resource of the arc CD,
        f4, represents the sum of the demand functions of the users who are concerned only with the resources of arcs AB and BC and:
    
    






  
    f
    ⁢
    
      
    
    ⁢
    4
    ⁢
    
      (
      
        
          p
          ⁢
          
            
          
          ⁢
          1
        
        +
        
          p
          ⁢
          
            
          
          ⁢
          2
        
      
      )
    
  
  =
  
    
      ∑
      
        
          E
          k
        
        =
        
          {
          
            AB
            ,
            BC
          
          }
        
      
    
    ⁢
    
      
        f
        k
      
      ⁡
      
        (
        
          
            p
            ⁢
            
              
            
            ⁢
            1
          
          +
          
            p
            ⁢
            
              
            
            ⁢
            2
          
        
        )
      
    
  




    
    
        f5, represents the sum of the demand functions of the users who are concerned only with the resources of arcs BC and CD, and
        f6, represents the sum of the demand functions of the users who are concerned with the resources of all the arcs AB, BC and CD, and:
    
    






  
    f
    ⁢
    
      
    
    ⁢
    6
    ⁢
    
      (
      
        
          p
          ⁢
          
            
          
          ⁢
          1
        
        +
        
          p
          ⁢
          
            
          
          ⁢
          2
        
        +
        
          p
          ⁢
          
            
          
          ⁢
          3
        
      
      )
    
  
  =
  
    
      ∑
      
        
          E
          l
        
        =
        
          {
          
            AB
            ,
            BC
            ,
            CD
          
          }
        
      
    
    ⁢
    
      
        f
        l
      
      ⁡
      
        (
        
          
            p
            ⁢
            
              
            
            ⁢
            1
          
          +
          
            p
            ⁢
            
              
            
            ⁢
            2
          
          +
          
            p
            ⁢
            
              
            
            ⁢
            3
          
        
        )
      
    
  




It will be noted that, in the above situation of the network with contiguous arcs in FIG. 7A, provision is not explicitly made for the case of a user who would be concerned only with the resource of the arc AB and with the resource of the arc CD, that is to say with the resources of two non-contiguous arcs. This situation may be encountered in the case in which this user would solicit resource on two separate yet interconnected networks (for example belonging to two different operators). However, it is noted that such a case is preferably resolved by applying his demand function f7 respectively to the two prices p1 (associated with the arc AB) and p3 (associated with the arc CD), and by then adding the contribution of the request of this type of user to the sums of the demand functions f1 and f3 respectively (f1 thus becomes f1+f7(p1) and f3 thus becomes f3+f7(p3)). By extension to a network with N arcs, the method thus applies for any user soliciting several non-contiguous paths.
Of course, “contiguous” arcs are understood to mean arcs AB, BC of the network having only one node B in common, the network being a tree network and meshless.
For the second system of equations governing the network in star form in FIG. 7B, the notation:

    
    
        Q1, represents the resource available on the arc AD,
        Q2, represents the resource available on the arc DB,
        Q3, represents the resource available on the arc DC,
        f1, represents the sum of the demand functions of the users who are concerned only with the resource of the arc AD,
        f2, represents the sum of the demand functions of the users who are concerned only with the resource of the arc DB,
        f3, represents the sum of the demand functions of the users who are concerned only with the resource of the arc DC,
        f4, represents the sum of the demand functions of the users who are concerned simultaneously with the resources of the arcs AD and DB,
        f5, represents the sum of the demand functions of the users who are concerned simultaneously with the resources of the arcs AD and DC, and
        f6, represents the sum of the demand functions of users who are concerned simultaneously with the resources of the arcs BD and DC.
    
    


It will thus be understood that the generalization of a network with N arcs in the sense of the above system of equations (SEQN) can proceed from a combination of groups of three arcs:

    
    
        contiguous according to FIG. 7A,
        and in star form according to FIG. 7B.

## Claims

1. A method for allocation of a resource comprising:
receiving via a computer network interface one bid from each of a plurality of buying agents in the form of a resource demand function, wherein the resource demand function is a positive, decreasing function that expresses a buying agent's demand for an allocable resource at a variable price;
calculating at a server computer an equilibrium price, wherein the equilibrium price is the price at which a total resource demand function equals a total quantity of the allocable resource, wherein the total resource demand function is a sum of all of the resource demand functions of the plurality of buying agents;
allocating to each individual buying agent an allocated quantity of the allocable resource, wherein the server computer sets the allocated quantity equal to the individual buying agent's resource demand function at the equilibrium price;
calculating a charged price for each individual buying agent, wherein calculating a charged price for each individual buying agent comprises the server computer calculating a price, Ci, for each buying agent i according to the equation:





  
    C
    i
  
  =
  
    
      ∑
      
        j
        ≠
        i
      
      
        
      
    
    ⁢
    
      
    
    ⁢
    
      
        ∫
        
          a
          j
          s
        
        
          a
          j
          o
        
      
      ⁢
      
        
          
            s
            j
            
              -
              1
            
          
          ⁡
          
            (
            p
            )
          
        
        ⁢
        
          
        
        ⁢
        
          d
          p
        
      
    
  




wherein asj expresses the quantity allocated to buying agent j in the presence of buying agent i and a0j expresses the quantity that would have been allocated to buying agent j had buying agent i been absent and sj−1 represents the inverse of the resource demand function of buying agent j; and
charging the charged price for an individual buying agent to that individual buying agent.

2. The method of claim 1, wherein a resource demand function is characterized by two selectable parameters, a maximum quantity desired by a buying agent and a coefficient indicating the buying agent's predisposition to pay.

3. The method of claim 1, wherein charging a price to each individual buying agent comprises communicating the charged price, the allocated quantity, and an identifier of the individual buying agent to a server responsible for billing.

4. The method of claim 1, wherein the price comprises a price per unit of time used.

5. The method of claim 1, further comprising recalculating the equilibrium price and the allocated quantity upon detecting a new buying agent's presence.

6. The method of claim 1, further comprising recalculating the equilibrium price and the allocated quantity upon detecting a new bid from a buying agent.

7. The method of claim 1, further comprising recalculating the equilibrium price and the allocated quantity upon detecting a change in the total quantity of the allocable resource.

8. The method of claim 1, wherein the charged price to an individual buying agent is less than or equal to the equilibrium price.

9. The method of claim 1, wherein the allocable resource is network bandwidth.

10. A system for allocating resources, comprising:
a plurality of buying agents communicatively coupled to a network; and
a network server communicatively coupled to the network, wherein the server comprises a processor; and
data storage comprising data and programming instructions for:
receiving one bid from each of the plurality of buying agents in the form of a resource demand function, wherein the resource demand function is a positive, decreasing function that expresses a buying agent's demand for an allocable resource at a variable price;
calculating an equilibrium price, wherein the equilibrium price is the price at which a total resource demand function equals a total quantity of the allocable resource, wherein the total resource demand function is a sum of all of the resource demand functions of the plurality of buying agents;
allocating to each individual buying agent an allocated quantity of the allocable resource, wherein the server sets the allocated quantity equal to the individual buying agent's resource demand function at the equilibrium price;
calculating a charged price for each individual buying agent, wherein calculating a charged price for each individual buying agent comprises the server calculating a price, Ci, for each buying agent i according to the equation:







  
    C
    i
  
  =
  
    
      ∑
      
        j
        ≠
        i
      
      
        
      
    
    ⁢
    
      
    
    ⁢
    
      
        ∫
        
          a
          j
          s
        
        
          a
          j
          o
        
      
      ⁢
      
        
          
            s
            j
            
              -
              1
            
          
          ⁡
          
            (
            p
            )
          
        
        ⁢
        
          
        
        ⁢
        
          d
          p
        
      
    
  




wherein asj expresses the quantity allocated to buying agent j in the presence of buying agent i and a0j expresses the quantity that would have been allocated to buying agent j had buying agent i been absent and sj−1 represents the inverse of the resource demand function of buying agent j; and


charging the charged price for an individual buying agent to that individual buying agent.

11. The system of claim 10, further comprising a link communicatively coupled to the network and having divisible bandwidth, wherein the allocable resource comprises the bandwidth of the link.

12. The system of claim 11, wherein allocating to each individual buying agent an allocated quantity of the allocable resource comprises restricting the individual buying agent's access to the link to the allocated quantity of bandwidth.

13. The system of claim 10, wherein a resource demand function is characterized by two selectable parameters, a maximum quantity desired by a buying agent and a coefficient indicating the buying agent's predisposition to pay.

14. The system of claim 10, wherein the bids of the plurality of buying agents are stored in the data storage of the server and wherein receiving one bid from each of the plurality of buying agents comprises accessing data storage to retrieve one bid associated with each of the plurality of buying agents.

15. A computer readable medium having stored therein instructions to cause a processor to:
retrieve one bid from each of a plurality of buying agents in the form of a resource demand function, wherein the resource demand function is a positive, decreasing function that expresses a buying agent's demand for an allocable resource at a variable price;
calculate an equilibrium price, wherein the equilibrium price is the price at which a total resource demand function equals a total quantity of the allocable resource, wherein the total resource demand function is a sum of all of the resource demand functions of the plurality of buying agents;
allocate to each individual buying agent an allocated quantity of the allocable resource, wherein the server sets the allocated quantity equal to the individual buying agent's resource demand function at the equilibrium price;
calculate a charged price for each individual buying agent, wherein calculate a charged price for each individual buying agent comprises the processor calculating a price, Ci, for each buying agent i according to the equation:





  
    C
    i
  
  =
  
    
      ∑
      
        j
        ≠
        i
      
      
        
      
    
    ⁢
    
      
    
    ⁢
    
      
        ∫
        
          a
          j
          s
        
        
          a
          j
          o
        
      
      ⁢
      
        
          
            s
            j
            
              -
              1
            
          
          ⁡
          
            (
            p
            )
          
        
        ⁢
        
          
        
        ⁢
        
          d
          p
        
      
    
  




wherein asj expresses the quantity allocated to buying agent j in the presence of buying agent i and a0j expresses the quantity that would have been allocated to buying agent j had buying agent i been absent and sj−1 represents the inverse of the resource demand function of buying agent j; and
charge the charged price for an individual buying agent to that individual buying agent.

16. The computer readable medium of claim 15, wherein a resource demand function is characterized by two selectable parameters, a maximum quantity desired by a buying agent and a coefficient indicating the buying agent's predisposition to pay.

17. The computer readable medium of claim 15, therein the charged price to each individual buying agent is less than or equal to the equilibrium price.