我试着做双DQN算法来学习玩2048游戏.如果您想检查代码,我的实现在GitHub中是可用的。(https://github.com/codetiger/MachineLearning-2048)
我的代码没有经过一个基本水平的学习。它不能达到256块以上的瓷砖。我的一些预测如下。
我无法用我的方法来确定这个问题。想了解一下这方面的情况。
我的伪码在这里。
for e in range(EPISODES):
gameEnv.Reset()
state = gameEnv.GetFlatGrid()
state = np.reshape(state, [1, state_size])
reward = 0.0
prevMaxNumber = 0
while True:
action = agent.get_action(state)
(moveScore, isValid) = gameEnv.Move(action + 1)
next_state = gameEnv.GetFlatGrid()
next_state = np.reshape(next_state, [1, state_size])
if isValid:
# Reward for step score
reward += moveScore
# Reward for New Max Number
if gameEnv.GetMaxNumber() > prevMaxNumber:
reward += 10.0
prevMaxNumber = gameEnv.GetMaxNumber()
gameEnv.AddNewNumber()
else:
reward = -50.0
done = gameEnv.CheckGameOver()
if done:
reward = -100.0
agent.append_sample(state, action, reward, next_state, done)
agent.train_model()
state = next_state
if done:
agent.update_target_model()发布于 2018-02-21 00:32:06
我的两分钱
https://stackoverflow.com/questions/44942285
复制相似问题