mapc_optimal.pricing

Classes

Pricing

The pricing problem responsible for proposing new configurations for the main problem.

Module Contents

class mapc_optimal.pricing.Pricing(mcs_values, mcs_data_rates, min_sinr, max_tx_power, min_tx_power, noise_floor, log_approx, opt_type, solver)

The pricing problem responsible for proposing new configurations for the main problem.

Parameters:
  • mcs_values (list) – List of the available MCS values.

  • mcs_data_rates (list) – List of the data rates corresponding to the available MCS values.

  • min_sinr (NDArray) – Array containing the minimum SINR values for each MCS value.

  • max_tx_power (float) – Maximum transmission power of the nodes.

  • min_tx_power (float) – Minimum transmission power of the nodes.

  • noise_floor (float) – Mean level of the noise floor in the network.

  • log_approx (tuple[NDArray, NDArray]) – Tuple containing the slopes and biases of the piecewise linear approximation of the logarithm function.

  • opt_type (OptimizationType) – The type of optimization problem to solve.

  • solver (pulp.LpSolver) – Solver used to solve the pricing problem.

mcs_values
mcs_data_rates
min_sinr
mcs_rate_diff
max_tx_power
min_tx_power
noise_floor
log_approx
opt_type
solver
initial_configuration(links, link_path_loss)

Generates the initial configuration for the solver. The initial configurations are very simple, they contain only one link, with the best possible data rate and the maximum transmission power. The initial configurations include all the links in the network.

Parameters:
  • links (list) – List of the links in the network.

  • link_path_loss (dict) – Dictionary containing the path loss of each link.

Returns:

configuration – Dictionary containing the initial configuration.

Return type:

dict

__call__(dual_alpha, dual_beta, dual_gamma, stations, access_points, links, link_node_a, link_node_b, link_path_loss, max_interference, configuration)

Solves the pricing problem given the dual variables of the main problem. Returns all the configurations and the value of the objective function.

Parameters:
  • dual_alpha (float) – Dual variable of the alpha constraint.

  • dual_beta (dict) – Dual variables of the beta constraints.

  • dual_gamma (dict) – Dual variables of the gamma constraints.

  • stations (list) – List of the station nodes.

  • access_points (list) – List of the access point nodes.

  • links (list) – List of the links in the network.

  • link_node_a (dict) – Dictionary containing the mapping of links to the access point nodes.

  • link_node_b (dict) – Dictionary containing the mapping of links to the station nodes.

  • link_path_loss (dict) – Dictionary containing the path loss of each link.

  • max_interference (dict) – Dictionary containing the maximum interference level for each link and each MCS value.

  • configuration (dict) – Dictionary containing all the configurations.

Returns:

result – Tuple containing the dictionary with the new configuration and the value of the objective function.

Return type:

tuple[dict, float]