HOME

TheInfoList



OR:

In
algorithmic game theory Algorithmic game theory (AGT) is an area in the intersection of game theory and computer science, with the objective of understanding and design of algorithms in strategic environments. Typically, in Algorithmic Game Theory problems, the input t ...
, a branch of both computer science and economics, a demand oracle is a function that, given a price-vector, returns the demand of an agent. It is used by many algorithms related to
pricing Pricing is the process whereby a business sets the price at which it will sell its products and services, and may be part of the business's marketing plan. In setting prices, the business will take into account the price at which it could acqui ...
and optimization in
online market In computer technology and telecommunications, online indicates a state of connectivity and offline indicates a disconnected state. In modern terminology, this usually refers to an Internet connection, but (especially when expressed "on line" ...
. It is usually contrasted with a value oracle, which is a function that, given a set of items, returns the value assigned to them by an agent.


Demand

The demand of an agent is the bundle of items that the agent most prefers, given some fixed prices of the items. As an example, consider a market with three objects and one agent, with the following values and prices. Suppose the agent's utility function is additive (= the value of a bundle is the sum of values of the items in the bundle), and quasilinear (= the utility of a bundle is the value of the bundle minus its price). Then, the demand of the agent, given the prices, is the set , which gives a utility of (4+6)-(3+1) = 6. Every other set gives the agent a smaller utility. For example, the empty set gives utility 0, while the set of all items gives utility (2+4+6)-(5+3+1)=3.


Oracle

With additive valuations, the demand function is easy to compute - there is no need for an "oracle". However, in general, agents may have ''combinatorial valuations''. This means that, for each combination of items, they may have a different value, which is not necessarily a sum of their values for the individual items. Describing such a function on ''m'' items might require up to 2''m'' numbers - a number for each subset. This may be infeasible when ''m'' is large. Therefore, many algorithms for markets use two kinds of oracles: * A ''value oracle'' can answer ''value queries'': given a bundle, it returns its value. * A ''demand oracle'' can answer ''demand queries'': given a price-vector, it returns a bundle that maximizes the quasilinear utility (value minus price).


Applications

Some examples of algorithms using demand oracles are: *
Welfare maximization The welfare maximization problem is an optimization problem studied in economics and computer science. Its goal is to partition a set of items among agents with different utility functions, such that the welfare – defined as the sum of the age ...
: there are ''n'' agents and ''m'' items. Each agent is represented by a value-oracle and a demand-oracle. It is required to allocate the items among the agents such that the sum of values is maximized. In general the problem is NP-hard, but approximations are known for special cases, such as
submodular valuation In mathematics, a submodular set function (also known as a submodular function) is a set function whose value, informally, has the property that the difference in the incremental value of the function that a single element makes when added to an ...
s (this is called the "submodular welfare problem"). Some algorithms use only a value oracle; other algorithms use also a ''demand oracle''. * Envy-free pricing: there are ''n'' agents and ''m'' items. Each agent is represented by a value-oracle and a demand-oracle. It is required to find a price-vector and an allocation of the items, such that no agent is envious, and subject to that, the seller's revenue is maximized. * Market equilibrium computation. *''Learning strong-substitutes demand''.


See also

* Oracle machine *
Demand curve In economics, a demand curve is a graph depicting the relationship between the price of a certain commodity (the ''y''-axis) and the quantity of that commodity that is demanded at that price (the ''x''-axis). Demand curves can be used either for ...
* Robertson-Webb query model - a similar query model in the domain of cake-cutting.


References

{{reflist Computational economics