bnelearn.experiment.combinatorial_experiment module

This module implements combinatorial experiments. Currently, this is only Local Global experiments as considered by Bosshard et al. (2018).

Limitations and comments:
  • Currently implemented for only uniform valuations

  • Strictly speaking Split Award might belong here (however, implementation closer to multi-unit)

class bnelearn.experiment.combinatorial_experiment.LLGExperiment(config: ExperimentConfig)[source]

Bases: LocalGlobalExperiment

A combinatorial experiment with 2 local and 1 global bidder and 2 items; but each bidders bids on 1 bundle only. Local bidder 1 bids only on the first item, the second only on the second and global only on both. Ausubel and Baranov (2018) provide closed form solutions for the 3 core selecting rules.

Supports arbitrary number of local bidders, not just two.

action_size: int
bne_env: AuctionEnvironment
bne_utilities: Tensor
epoch: int
input_length: int
mechanism: Mechanism
n_models: int
observation_size: int
plot_xmax: float
plot_xmin: float
plot_ymax: float
plot_ymin: float
positive_output_point: Tensor
valuation_size: int
class bnelearn.experiment.combinatorial_experiment.LLGFullExperiment(config: ExperimentConfig)[source]

Bases: LocalGlobalExperiment

A combinatorial experiment with 2 local and 1 global bidder and 2 items.

Essentially, this is a general CA with 3 bidders and 2 items.

Each bidder bids on all bundles. Local bidder 1 has only a value for the first item, the second only for the second and global only on both. This experiment is therefore more general than the LLGExperiment and includes the specific payment rule from Beck & Ott, where the 2nd local bidder is favored (pays VCG prices).

action_size: int
bne_env: AuctionEnvironment
bne_utilities: Tensor
epoch: int
input_length: int
mechanism: Mechanism
n_models: int
observation_size: int
plot_xmax: float
plot_xmin: float
plot_ymax: float
plot_ymin: float
positive_output_point: Tensor
pretrain_transform(player_position: int) callable[source]

Transformation during pretraining: Bidders are single-minded in this setting.

valuation_size: int
class bnelearn.experiment.combinatorial_experiment.LLLLGGExperiment(config: ExperimentConfig)[source]

Bases: LocalGlobalExperiment

A combinatorial experiment with 4 local and 2 global bidder and 6 items; but each bidders bids on 2 bundles only.

Local bidder 1 bids on the bundles {(item_1,item_2),(item_2,item_3)} Local bidder 2 bids on the bundles {(item_3,item_4),(item_4,item_5)} … Gloabl bidder 1 bids on the bundles {(item_1,item_2,item_3,item_4), (item_5,item_6,item_7,item_8)} Gloabl bidder 1 bids on the bundles {(item_3,item_4,item_5,item_6), (item_1,item_2,item_7,item_8)}

No BNE are known (but VCG). Bosshard et al. (2018) consider this setting with nearest-vcg and first-price payments.

TODO:
  • Implement eval_env for VCG

action_size: int
bne_env: AuctionEnvironment
bne_utilities: Tensor
epoch: int
input_length: int
mechanism: Mechanism
n_models: int
observation_size: int
plot_xmax: float
plot_xmin: float
plot_ymax: float
plot_ymin: float
positive_output_point: Tensor
valuation_size: int
class bnelearn.experiment.combinatorial_experiment.LLLLRRGExperiment(config: ExperimentConfig)[source]

Bases: Experiment

Experiment in an extension of the Local-Global Model with three groups of bidders.

action_size: int
bne_env: AuctionEnvironment
bne_utilities: Tensor
epoch: int
input_length: int
mechanism: Mechanism
n_models: int
observation_size: int
plot_xmax: float
plot_xmin: float
plot_ymax: float
plot_ymin: float
positive_output_point: Tensor
valuation_size: int
class bnelearn.experiment.combinatorial_experiment.LocalGlobalExperiment(config: ExperimentConfig, n_players, n_local, valuation_size, observation_size, action_size)[source]

Bases: Experiment, ABC

This class represents Local Global experiments in general as considered by Bosshard et al. (2018). It serves only to provide common logic and parameters for LLG and LLLLGG.

action_size: int
bne_env: AuctionEnvironment
bne_utilities: Tensor
epoch: int
input_length: int
mechanism: Mechanism
n_models: int
observation_size: int
plot_xmax: float
plot_xmin: float
plot_ymax: float
plot_ymin: float
positive_output_point: Tensor
valuation_size: int