Example #1
0
        if unit_price < min_unit_price:
            pass
        else:
            for i in range(num_users):
                ws[i] = manager.users[i].w
                Es[i] = manager.users[i].E
                us[i] = manager.users[i].set_utility(Es[i], ws[i])
                # print("user {}'s E_i : {}, w_i : {}, utility : {}".format(i, Es[i], ws[i], us[i]))
            new_utility = seller.compute_utility(E_sold, sum(ws))
            # xs.append(E_sold)
            # utility_seller.append(new_utility)
            # utility_buyers.append(sum(us)/num_users)
            # unit_prices.append(unit_price)

            if seller.utility < new_utility:
                seller.utility = new_utility
                final_E = E_sold
        E_sold -= 1

    bps_seller_utility = seller.utility

    ws_final = []
    Es_final = []
    us_final = []
    manager.initialize(final_E)
    manager.KKT()
    for i in range(len(users)):
        ws_final.append(users[i].w)
        Es_final.append(users[i].E)
        us_final.append(users[i].set_utility(Es_final[-1], ws_final[-1]))