强化学习算法代码python
时间: 2024-02-09 07:06:07 浏览: 37
强化学习是一种机器学习方法,通过智能体与环境的交互来学习最优策略。下面是一个简单的强化学习算法代码示例,使用Python语言编写:
```python
import numpy as np
# 定义强化学习的环境
class Environment:
def __init__(self):
self.state = 0
def step(self, action):
if action == 0:
self.state -= 1
else:
self.state += 1
reward = -1 if self.state != 3 else 0
done = True if self.state == 3 else False
return self.state, reward, done
# 定义强化学习的智能体
class Agent:
def __init__(self, num_states, num_actions):
self.num_states = num_states
self.num_actions = num_actions
self.q_table = np.zeros((num_states, num_actions))
def choose_action(self, state, epsilon):
if np.random.uniform() < epsilon:
action = np.random.randint(self.num_actions)
else:
action = np.argmax(self.q_table[state])
return action
def update_q_table(self, state, action, reward, next_state, alpha, gamma):
q_value = self.q_table[state, action]
max_q_value = np.max(self.q_table[next_state])
new_q_value = (1 - alpha) * q_value + alpha * (reward + gamma * max_q_value)
self.q_table[state, action] = new_q_value
# 定义强化学习的训练过程
def train(num_episodes, alpha, gamma, epsilon):
env = Environment()
agent = Agent(num_states=4, num_actions=2)
for episode in range(num_episodes):
state = env.state
done = False
while not done:
action = agent.choose_action(state, epsilon)
next_state, reward, done = env.step(action)
agent.update_q_table(state, action, reward, next_state, alpha, gamma)
state = next_state
return agent.q_table
# 运行强化学习训练过程
q_table = train(num_episodes=1000, alpha=0.5, gamma=0.9, epsilon=0.1)
print(q_table)
```
这个代码示例实现了一个简单的强化学习算法,使用Q-learning方法来学习最优策略。在训练过程中,智能体与环境进行交互,根据当前状态选择动作,并更新Q值表。最后输出学习到的Q值表。