Я пытаюсь создать адаптивную агентскую модель аукциона для первой частной аукционной игры с q-learning. Я закончил начальную модель без q-обучения. В основном для l oop. И сейчас я пытаюсь сделать это с помощью алгоритма q-learning. Я установил свое состояние в качестве текущей ставки, а действие - остаться / увеличить / снять. Моя путаница заключается в том, как настроить конечную точку в этом случае. И как построить среду.
import numpy as np
import random as rd
#Give each bidder a unique initial value won't change
agent1_val = rd.uniform(0,1)
agent2_val = rd.uniform(0,1)
agent3_val = rd.uniform(0,1)
agent4_val = rd.uniform(0,1)
agent5_val = rd.uniform(0,1)
agent6_val = rd.uniform(0,1)
agent7_val = rd.uniform(0,1)
agent8_val = rd.uniform(0,1)
agent9_val = rd.uniform(0,1)
agent10_val = rd.uniform(0,1) #adaptive agent
X=[agent1_val,agent2_val,agent3_val,agent4_val,agent5_val,agent6_val,agent7_val,
agent8_val,agent9_val,agent10_val]
w=max(X) #did not figure out how to use this information
# should be an information for all the agent beforehead
u_0=1/6
u = u_0 #initial value of u
#Bidding price of each bidder
b1 = agent1_val*9/10
b2 = agent2_val*9/10
b3 = agent3_val*9/10
b4 = agent4_val*9/10
b5 = agent5_val*9/10
b6 = agent6_val*9/10
b7 = agent7_val*9/10
b8 = agent8_val*9/10
b9 = agent9_val*9/10
reward = 0. #total_rewards
#find the optimal bid price for agent_10
for u in range(10000):
u = 1/10
b10=agent10_val*(1-u)
B=[b1,b2,b3,b4,b5,b6,b7,b8,b9,b10]
p=max(B)
win=0
lose=0
if b10==p:
win=1
else:
lose=1;
result=win
reward +=result*(agent10_val-b10)
Y=sort(B)
yn=Y[-2]
if result ==1:
O=b10*8/9
else:
O=yn
d = 1-(O/agent10_val)
u = u + 5/6 * (d-u)
print('bidding price:', b10,'reward is : ', reward)