mapc_optimal.pricing

Module Contents

Classes

Pricing

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

class mapc_optimal.pricing.Pricing(mcs_values, mcs_data_rates, min_sinr, max_tx_power, min_tx_power, noise_floor, opt_sum, 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.

  • opt_sum (bool) – If True, the total throughput is optimized, otherwise the worst throughput is optimized.

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

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]