Pseudo-code for the algorithm:
- https://i.postimg.cc/NjhpzJ7J/1.png
- https://i.postimg.cc/NjhpzJ7J/1.png
- https://i.postimg.cc/VsgJTdq3/2.png
- https://i.postimg.cc/qB17wW0r/3.png
My code does not run in the Python interpreter. I don't have access to the results of the author's experiments. Is it possible to reproduce the code from this reference?
# Algorithm 1: Enhanced Multi-attribute Combinative Double Auction (EMCDA) resource allocation algorithm
# Input: Bids from customers and providers, Normalization factors
# Output: Customer-provider pairs, Prices
# Define some parameters
n = # Number of customers
m = # Number of providers
k = # Number of attributes
alpha = # Weight for customer satisfaction
beta = # Weight for provider satisfaction
# Normalize the bids using the normalization factors
customer_bids_normalized = customer_bids * normalization_factors
provider_bids_normalized = provider_bids * normalization_factors
# Calculate the utility matrix for each customer-provider pair
utility_matrix = # A n x m matrix of zeros
for i in range(n):
for j in range(m):
utility_matrix[i][j] = # The sum of the minimum values of each attribute between customer i and provider j
# Find the optimal matching using the Hungarian algorithm
row_ind, col_ind = # The row and column indices of the maximum values in the utility matrix
# Calculate the prices for each customer-provider pair
prices = # A n-dimensional vector of zeros
for i in range(n):
j = col_ind[i] # The matched provider for customer i
prices[i] = # The weighted sum of the bids from customer i and provider j
# Return the results
return row_ind, col_ind, prices
# Algorithm 2: Price calculation using normalization factors
# Input: Customer bid, Provider bid, Normalization factors, Weights
# Output: Price
def price_calculation(customer_bid, provider_bid, normalization_factors, alpha, beta):
# Normalize the bids using the normalization factors
customer_bid_normalized = customer_bid * normalization_factors
provider_bid_normalized = provider_bid * normalization_factors
# Calculate the utility for the customer-provider pair
utility = # The sum of the minimum values of each attribute between customer bid and provider bid
# Calculate the price for the customer-provider pair
price = # The weighted sum of the bids from customer and provider
return price