num_of_cells, num_of_CUEs, rate_proportion=0.05) opt_CUE_power, opt_D2D_power = Simulation.GetPowerAllocation( y_test, num_of_cells, num_of_CUEs, num_of_D2Ds) opt_CUE_rate, opt_D2D_rate = Simulation.GetDataRate(channel_gain_matrix, opt_CUE_power, opt_D2D_power) opt_system_sum_rate, opt_CUE_sum_rate, opt_D2D_sum_rate = Simulation.GetSumRate( opt_CUE_rate, opt_D2D_rate) opt_system_power_consumption, opt_CUE_power_consumption, opt_D2D_power_consumption = Simulation.GetPowerConsumption( opt_CUE_power, opt_D2D_power) opt_system_EE, opt_CUE_EE, opt_D2D_EE = Simulation.GetEnergyEfficiency( opt_system_sum_rate, opt_CUE_sum_rate, opt_D2D_sum_rate, opt_system_power_consumption, opt_CUE_power_consumption, opt_D2D_power_consumption) opt_system_UIR, opt_CUE_UIR, opt_D2D_UIR = Simulation.GetUIR( opt_CUE_rate, opt_D2D_rate, opt_CUE_power, opt_D2D_power, QoS_of_CUE) opt_system_RIR, opt_CUE_RIR, opt_D2D_RIR = Simulation.GetRIR( opt_CUE_rate, opt_D2D_rate, opt_CUE_power, opt_D2D_power, QoS_of_CUE) opt_avg_system_sum_rate, opt_avg_CUE_sum_rate, opt_avg_D2D_sum_rate = Simulation.GetAvgSumRate( opt_system_sum_rate, opt_CUE_sum_rate, opt_D2D_sum_rate) print(f"\nOptimal average system sum rate: {opt_avg_system_sum_rate}") print(f"Optimal average CUE sum rate: {opt_avg_CUE_sum_rate}") print(f"Optimal average D2D sum rate: {opt_avg_D2D_sum_rate}") opt_avg_system_power_consumption, opt_avg_CUE_power_consumption, opt_avg_D2D_power_consumption = Simulation.GetAvgPowerConsumption( opt_system_power_consumption, opt_CUE_power_consumption, opt_D2D_power_consumption)