Auctions namespace. More...
Namespaces | |
concepts | |
Auctions Concepts namespace. | |
detail | |
concepts | |
Classes | |
struct | auction_traits |
Types associated with all auctions. More... | |
class | value_query_auction_traits |
Types associated with value query auction. More... | |
struct | demand_query_auction_traits |
Types associated with demand query auction. More... | |
class | gamma_oracle_auction_traits |
Types associated with gamma oracle auction. More... | |
Typedefs | |
using | base_auction_components = data_structures::components< bidders, items, data_structures::NameWithDefault< get_copies_num, utils::return_one_functor > > |
concepts More... | |
using | value_query_components = detail::add_to_base_auction< value_query > |
detail More... | |
template<typename... Args> | |
using | value_query_auction_components = typename value_query_components::type< Args...> |
value query auction components template alias More... | |
using | demand_query_components = detail::add_to_base_auction< demand_query > |
definition for the components class for a demand query auction | |
template<typename... Args> | |
using | demand_query_auction_components = typename demand_query_components::type< Args...> |
demand query auction components template alias More... | |
using | gamma_oracle_components = detail::add_to_base_auction< gamma_oracle, gamma > |
definition for the components class for a gamma oracle auction. | |
template<typename... Args> | |
using | gamma_oracle_auction_components = typename gamma_oracle_components::type< Args...> |
gamma oracle auction components template alias More... | |
Functions | |
template<typename... Args> | |
auto | make_value_query_auction_components (Args &&...args) -> decltype(value_query_components::make_components(std::forward< Args >(args)...)) |
make function for value query components More... | |
template<typename... Args> | |
auto | make_demand_query_auction_components (Args &&...args) |
make function for demand query components More... | |
template<typename... Args> | |
auto | make_gamma_oracle_auction_components (Args &&...args) -> decltype(gamma_oracle_components::make_components(std::forward< Args >(args)...)) |
make function for gamma oracle components More... | |
template<class Auction > | |
auto | items_number (Auction &&auction) |
Returns the number of different kinds of items in an auction. More... | |
template<class Auction > | |
auto | bidders_number (Auction &&auction) |
Returns the number of bidders in an auction. More... | |
template<class Auction > | |
paal::auctions::auction_traits < Auction >::copies_num_t | get_minimum_copies_num (Auction &&auction) |
Returns minimum number of copies of an item in an auction. More... | |
template<class DemandQueryAuction , class OutputIterator , class ItemToLpIdMap , class SeparationOracle = paal::lp::random_violated_separation_oracle> | |
void | fractional_determine_winners_in_demand_query_auction (DemandQueryAuction &&auction, OutputIterator result, ItemToLpIdMap item_to_id, double epsilon, SeparationOracle separation_oracle=SeparationOracle{}) |
detail More... | |
template<class DemandQueryAuction , class OutputIterator > | |
void | fractional_determine_winners_in_demand_query_auction (DemandQueryAuction &&auction, OutputIterator result, double epsilon=1e-7) |
This is fractional determine winners in demand query auction and return assignment of fractional bundles to bidders. This is version with default ItemToLpIdMap using std::unordered_map and default epsilon. More... | |
template<class Bidders , class Items , class GetValue , class GetItems , class GetCopiesNum = utils::return_one_functor> | |
auto | make_single_minded_to_value_query_auction (Bidders &&bidders, Items &&items, GetValue get_value, GetItems get_items, GetCopiesNum get_copies_num=GetCopiesNum{}) -> decltype(make_xor_bids_to_value_query_auction(std::forward< Bidders >(bidders), std::forward< Items >(items), detail::get_bids(), get_value, get_items, get_copies_num)) |
detail More... | |
template<class Bidders , class Items , class GetValue , class GetItems , class GetCopiesNum = utils::return_one_functor> | |
auto | make_single_minded_to_demand_query_auction (Bidders &&bidders, Items &&items, GetValue get_value, GetItems get_items, GetCopiesNum get_copies_num=GetCopiesNum{}) -> decltype(make_xor_bids_to_demand_query_auction(std::forward< Bidders >(bidders), std::forward< Items >(items), detail::get_bids(), get_value, get_items, get_copies_num)) |
Create demand query auction from single minded valuations. More... | |
template<class Bidders , class Items , class GetValue , class GetItems , class GetCopiesNum = utils::return_one_functor> | |
auto | make_single_minded_to_gamma_oracle_auction (Bidders &&bidders, Items &&items, GetValue get_value, GetItems get_items, GetCopiesNum get_copies_num=GetCopiesNum{}) -> decltype(make_xor_bids_to_gamma_oracle_auction(std::forward< Bidders >(bidders), std::forward< Items >(items), detail::get_bids(), get_value, get_items, get_copies_num)) |
Create gamma oracle auction from single minded valuations. More... | |
template<class Bidders , class GetItems , class OutputIterator > | |
void | extract_items_from_single_minded (Bidders &&bidders, GetItems get_items, OutputIterator output) |
Extract all items appearing in all bidders' bids. This function doesn't eliminate duplicates, this is left out to the caller. More... | |
template<class GammaOracleAuction , class OutputIterator , class PriceMap , class Epsilon > | |
void | determine_winners_in_gamma_oracle_auction (GammaOracleAuction &&auction, OutputIterator result, PriceMap price, Epsilon epsilon) |
detail More... | |
template<class GammaOracleAuction , class OutputIterator , class Epsilon = double> | |
void | determine_winners_in_gamma_oracle_auction (GammaOracleAuction &&auction, OutputIterator result, Epsilon epsilon=1e-8) |
This is determine winners in gamma oracle auction and return assignment of bidders to items. This is version with default PriceMap using std::unordered_map and default epsilon. More... | |
template<class Bidders , class Items , class GetBids , class GetValue , class GetItems , class GetCopiesNum = utils::return_one_functor> | |
auto | make_xor_bids_to_value_query_auction (Bidders &&bidders, Items &&items, GetBids get_bids, GetValue get_value, GetItems get_items, GetCopiesNum get_copies_num=GetCopiesNum{}) -> decltype(make_value_query_auction_components(std::forward< Bidders >(bidders), std::forward< Items >(items), detail::xor_bids_value_query< GetBids, GetValue, GetItems >(get_bids, get_value, get_items), get_copies_num)) |
detail More... | |
template<class Bidders , class Items , class GetBids , class GetValue , class GetItems , class GetCopiesNum = utils::return_one_functor> | |
auto | make_xor_bids_to_demand_query_auction (Bidders &&bidders, Items &&items, GetBids get_bids, GetValue get_value, GetItems get_items, GetCopiesNum get_copies_num=GetCopiesNum{}) |
detail More... | |
template<class Bidders , class Items , class GetBids , class GetValue , class GetItems , class GetCopiesNum = utils::return_one_functor> | |
auto | make_xor_bids_to_gamma_oracle_auction (Bidders &&bidders, Items &&items, GetBids get_bids, GetValue get_value, GetItems get_items, GetCopiesNum get_copies_num=GetCopiesNum{}) -> decltype(make_gamma_oracle_auction_components(std::forward< Bidders >(bidders), std::forward< Items >(items), detail::xor_bids_gamma_oracle< GetBids, GetValue, GetItems >(get_bids, get_value, get_items), 1, get_copies_num)) |
detail More... | |
template<class Bidders , class GetBids , class GetItems , class OutputIterator > | |
void | extract_items_from_xor_bids (Bidders &&bidders, GetBids get_bids, GetItems get_items, OutputIterator output) |
extract all items appearing in all bids. This function doesn't eliminate duplicates, this is left out to the caller. More... | |
Auctions namespace.
using paal::auctions::base_auction_components = typedef data_structures::components< bidders, items, data_structures::NameWithDefault<get_copies_num, utils::return_one_functor> > |
concepts
Definition for the components class representing an auction. This class is not meant to be directly used, it is just a base for the more specialized components interfaces.
Definition at line 204 of file auction_components.hpp.
using paal::auctions::demand_query_auction_components = typedef typename demand_query_components::type<Args...> |
demand query auction components template alias
Args |
Definition at line 261 of file auction_components.hpp.
using paal::auctions::gamma_oracle_auction_components = typedef typename gamma_oracle_components::type<Args...> |
gamma oracle auction components template alias
Args |
Definition at line 292 of file auction_components.hpp.
using paal::auctions::value_query_auction_components = typedef typename value_query_components::type<Args...> |
value query auction components template alias
Args |
Definition at line 229 of file auction_components.hpp.
using paal::auctions::value_query_components = typedef detail::add_to_base_auction<value_query> |
detail
definition for the components class for a value query auction.
Definition at line 221 of file auction_components.hpp.
auto paal::auctions::bidders_number | ( | Auction && | auction | ) |
Returns the number of bidders in an auction.
auction |
Auction |
Definition at line 50 of file auction_utils.hpp.
void paal::auctions::determine_winners_in_gamma_oracle_auction | ( | GammaOracleAuction && | auction, |
OutputIterator | result, | ||
PriceMap | price, | ||
Epsilon | epsilon | ||
) |
detail
This is determine winners in gamma oracle auction and return assignment of items to bidders.
Example:
Complete example is winner_determination_in_MUCA_example.cpp.
GammaOracleAuction | |
OutputIterator | |
PriceMap | |
Epsilon |
auction | |
result | |
price | Stores the current mapping of items to prices. These are prices just for the working purposes of the algorithm, not the prices to be paid by the bidders. |
epsilon | Used for floating point comparison to ensure feasibility. |
Definition at line 106 of file winner_determination_in_MUCA.hpp.
void paal::auctions::determine_winners_in_gamma_oracle_auction | ( | GammaOracleAuction && | auction, |
OutputIterator | result, | ||
Epsilon | epsilon = 1e-8 |
||
) |
This is determine winners in gamma oracle auction and return assignment of bidders to items. This is version with default PriceMap using std::unordered_map and default epsilon.
GammaOracleAuction | |
OutputIterator | |
Epsilon |
auction | |
result | |
epsilon | Used for floating point comparison to ensure feasibility. |
Definition at line 218 of file winner_determination_in_MUCA.hpp.
void paal::auctions::extract_items_from_single_minded | ( | Bidders && | bidders, |
GetItems | get_items, | ||
OutputIterator | output | ||
) |
Extract all items appearing in all bidders' bids. This function doesn't eliminate duplicates, this is left out to the caller.
bidders | |
get_items | |
output |
Bidders | |
GetItems | |
OutputIterator |
Definition at line 233 of file single_minded_auctions.hpp.
void paal::auctions::extract_items_from_xor_bids | ( | Bidders && | bidders, |
GetBids | get_bids, | ||
GetItems | get_items, | ||
OutputIterator | output | ||
) |
extract all items appearing in all bids. This function doesn't eliminate duplicates, this is left out to the caller.
Bidders | |
GetBids | |
GetItems | |
OutputIterator |
bidders | |
get_bids | |
get_items | |
output |
Definition at line 458 of file xor_bids.hpp.
void paal::auctions::fractional_determine_winners_in_demand_query_auction | ( | DemandQueryAuction && | auction, |
OutputIterator | result, | ||
ItemToLpIdMap | item_to_id, | ||
double | epsilon, | ||
SeparationOracle | separation_oracle = SeparationOracle{} |
||
) |
detail
This is fractional determine winners in demand query auction and return assignment of fractional bundles to bidders.
Example:
Complete example is fractional_winner_determination_in_MUCA_example.cpp
DemandQueryAuction | |
OutputIterator | |
ItemToLpIdMap | |
SeparationOracle |
auction | |
result | |
item_to_id | Stores the current mapping of items to LP column ids. |
epsilon | Used for floating point comparison. |
separation_oracle | Separation Oracle Strategy for searching the bidder with violated inequality. |
Definition at line 113 of file fractional_winner_determination_in_MUCA.hpp.
void paal::auctions::fractional_determine_winners_in_demand_query_auction | ( | DemandQueryAuction && | auction, |
OutputIterator | result, | ||
double | epsilon = 1e-7 |
||
) |
This is fractional determine winners in demand query auction and return assignment of fractional bundles to bidders. This is version with default ItemToLpIdMap using std::unordered_map and default epsilon.
DemandQueryAuction | |
OutputIterator |
auction | |
result | |
epsilon | Used for floating point comparison. |
Definition at line 224 of file fractional_winner_determination_in_MUCA.hpp.
paal::auctions::auction_traits<Auction>::copies_num_t paal::auctions::get_minimum_copies_num | ( | Auction && | auction | ) |
Returns minimum number of copies of an item in an auction.
auction |
Auction |
Definition at line 62 of file auction_utils.hpp.
auto paal::auctions::items_number | ( | Auction && | auction | ) |
Returns the number of different kinds of items in an auction.
auction |
Auction |
Definition at line 39 of file auction_utils.hpp.
auto paal::auctions::make_demand_query_auction_components | ( | Args &&... | args | ) |
make function for demand query components
Args |
args |
Definition at line 272 of file auction_components.hpp.
auto paal::auctions::make_gamma_oracle_auction_components | ( | Args &&... | args | ) | -> decltype(gamma_oracle_components::make_components(std::forward<Args>(args)...)) |
make function for gamma oracle components
Args |
args |
Definition at line 303 of file auction_components.hpp.
auto paal::auctions::make_single_minded_to_demand_query_auction | ( | Bidders && | bidders, |
Items && | items, | ||
GetValue | get_value, | ||
GetItems | get_items, | ||
GetCopiesNum | get_copies_num = GetCopiesNum{} |
||
) | -> decltype(make_xor_bids_to_demand_query_auction( std::forward<Bidders>(bidders), std::forward<Items>(items), detail::get_bids(), get_value, get_items, get_copies_num )) |
Create demand query auction from single minded valuations.
bidders | |
items | |
get_value | |
get_items | |
get_copies_num |
Bidders | |
Items | |
GetValue | |
GetItems | |
GetCopiesNum |
Definition at line 148 of file single_minded_auctions.hpp.
auto paal::auctions::make_single_minded_to_gamma_oracle_auction | ( | Bidders && | bidders, |
Items && | items, | ||
GetValue | get_value, | ||
GetItems | get_items, | ||
GetCopiesNum | get_copies_num = GetCopiesNum{} |
||
) | -> decltype(make_xor_bids_to_gamma_oracle_auction( std::forward<Bidders>(bidders), std::forward<Items>(items), detail::get_bids(), get_value, get_items, get_copies_num )) |
Create gamma oracle auction from single minded valuations.
bidders | |
items | |
get_value | |
get_items,@param | get_copies_num |
Bidders | |
Items | |
GetValue | |
GetItems | |
GetCopiesNum |
Definition at line 195 of file single_minded_auctions.hpp.
auto paal::auctions::make_single_minded_to_value_query_auction | ( | Bidders && | bidders, |
Items && | items, | ||
GetValue | get_value, | ||
GetItems | get_items, | ||
GetCopiesNum | get_copies_num = GetCopiesNum{} |
||
) | -> decltype(make_xor_bids_to_value_query_auction( std::forward<Bidders>(bidders), std::forward<Items>(items), detail::get_bids(), get_value, get_items, get_copies_num )) |
detail
Create value query auction from single minded valuations.
bidders | |
items | |
get_value | |
get_items | |
get_copies_num |
Bidders | |
Items | |
GetValue | |
GetItems | |
GetCopiesNum |
Definition at line 98 of file single_minded_auctions.hpp.
auto paal::auctions::make_value_query_auction_components | ( | Args &&... | args | ) | -> decltype(value_query_components::make_components(std::forward<Args>(args)...)) |
make function for value query components
Args |
args |
Definition at line 240 of file auction_components.hpp.
auto paal::auctions::make_xor_bids_to_demand_query_auction | ( | Bidders && | bidders, |
Items && | items, | ||
GetBids | get_bids, | ||
GetValue | get_value, | ||
GetItems | get_items, | ||
GetCopiesNum | get_copies_num = GetCopiesNum{} |
||
) |
detail
Create demand query auction from xor bids valuations.
bidders | |
items | |
get_bids | |
get_value | |
get_items | |
get_copies_num |
Bidders | |
Items | |
GetBids | |
GetValue | |
GetItems | |
GetCopiesNum |
Definition at line 264 of file xor_bids.hpp.
auto paal::auctions::make_xor_bids_to_gamma_oracle_auction | ( | Bidders && | bidders, |
Items && | items, | ||
GetBids | get_bids, | ||
GetValue | get_value, | ||
GetItems | get_items, | ||
GetCopiesNum | get_copies_num = GetCopiesNum{} |
||
) | -> decltype(make_gamma_oracle_auction_components( std::forward<Bidders>(bidders), std::forward<Items>(items), detail::xor_bids_gamma_oracle<GetBids, GetValue, GetItems>(get_bids, get_value, get_items), 1, get_copies_num )) |
detail
Create gamma oracle auction from xor bids valuations.
bidders | |
items | |
get_bids | |
get_value | |
get_items | |
get_copies_num |
Bidders | |
Items | |
GetBids | |
GetValue | |
GetItems | |
GetCopiesNum |
Definition at line 418 of file xor_bids.hpp.
auto paal::auctions::make_xor_bids_to_value_query_auction | ( | Bidders && | bidders, |
Items && | items, | ||
GetBids | get_bids, | ||
GetValue | get_value, | ||
GetItems | get_items, | ||
GetCopiesNum | get_copies_num = GetCopiesNum{} |
||
) | -> decltype(make_value_query_auction_components( std::forward<Bidders>(bidders), std::forward<Items>(items), detail::xor_bids_value_query<GetBids, GetValue, GetItems>(get_bids, get_value, get_items), get_copies_num )) |
detail
Create value query auction from xor bids valuations.
bidders | |
items | |
get_bids | |
get_value | |
get_items | |
get_copies_num |
Bidders | |
Items | |
GetBids | |
GetValue | |
GetItems | |
GetCopiesNum |
Definition at line 170 of file xor_bids.hpp.