莫烦RL-01小例子
# Python 3.6.5 :: Anaconda, Inc. import numpy as np
import pandas as pd
import time np.random.seed(2) N_STATUS = 5
ACTIONS = ['left', 'right']
EPSILON = 0.9
ALPHA = 0.1
LAMBDA = 0.9
MAX_EPISODES = 13
FRESH_TIME = 0.1 def build_q_table(n_status, actions):
table = pd.DataFrame(
np.zeros((n_status, len(actions))),
columns=actions,
)
#print(table)
return table #build_q_table(5,[1]) def choose_action(state, q_table):
state_actions = q_table.iloc[state, :]
if (np.random.uniform() > EPSILON or (state_actions.all() == 0)):
action_name = np.random.choice(ACTIONS)
else:
action_name = state_actions.argmax()
return action_name def get_env_feedback(S, A):
if A == 'right':
if S == N_STATUS - 2:
S_ = 'terminal'
R = 1
else:
S_ = S + 1
R = 0
else:
R = 0
if S == 0:
S_ = S
else:
S_ = S - 1
return S_, R def update_env(S, episode, step_counter):
env_list = ['-']*(N_STATUS-1)+['T']
if S == 'terminal':
interaction = 'Episode %d: total_steps = %s' % (episode+1, step_counter)
print('\r{}'.format(interaction), end='')
time.sleep(1)
print('\r ', end='')
else:
env_list[S] = 'o'
interaction = ''.join(env_list)
print('\r{}'.format(interaction), end='')
time.sleep(FRESH_TIME) def rl():
q_table = build_q_table(N_STATUS, ACTIONS)
for episode in range(MAX_EPISODES):
step_counter = 0
S = 0
is_terminated = False
update_env(S, episode, step_counter)
while not is_terminated:
A = choose_action(S, q_table)
S_, R = get_env_feedback(S, A)
q_predict = q_table.ix[S, A]
if S_ != 'terminal':
q_target = R + LAMBDA*q_table.iloc[S_, :].max()
else:
q_target = R
is_terminated = True q_table.ix[S, A] += ALPHA*(q_target - q_predict)
S = S_
update_env(S, episode, step_counter+1)
step_counter += 1
return q_table if __name__ == "__main__":
q_table = rl()
print('\r\nQ-table:\n')
print(q_table)
莫烦RL-01小例子的更多相关文章
- JavaScript小例子:复选框全选
		JavaScript小例子:复选框全选 这只是一个小例子,很简单,但是这个功能还是很常用的: 实现后效果如图: JavaScript代码: <script type="text/jav ... 
- oracle数据库包package小例子
		为了把某一个模块的函数.存储过程等方便查询维护,可以把它们打到一个包里.下面给出一个简单的小例子. 1.创建包头 create or replace package chen_pack is func ... 
- spring-mvc-两个个小例子
		1.用Eclipse创建一个工程,命名为spring2.0 并添加相应的jar包(我用的是4.0.5的版本)到 lib 包下: spring-webmvc-4.0.5.RELEASE.jar spri ... 
- 【莫烦Pytorch】【P1】人工神经网络VS. 生物神经网络
		滴:转载引用请注明哦[握爪] https://www.cnblogs.com/zyrb/p/9700343.html 莫烦教程是一个免费的机器学习(不限于)的学习教程,幽默风俗的语言让我们这些刚刚起步 ... 
- tensorflow 莫烦教程
		1,感谢莫烦 2,第一个实例:用tf拟合线性函数 import tensorflow as tf import numpy as np # create data x_data = np.random ... 
- 稍稍乱入的CNN,本文依然是学习周莫烦视频的笔记。
		稍稍乱入的CNN,本文依然是学习周莫烦视频的笔记. 还有 google 在 udacity 上的 CNN 教程. CNN(Convolutional Neural Networks) 卷积神经网络简单 ... 
- JSP小例子——实现用户登录小例子(不涉及DB操作)
		实现用户登录小例子用户名和密码都为"admin",登陆成功使用服务器内部转发到login_success.jsp页面,并且提示登陆成功的用户名.如果登陆失败则请求重定向到login ... 
- python2.7练习小例子(十五)
		15):题目:输出指定格式的日期. 程序分析:使用 datetime 模块. 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- ... 
- Python-正则表达式及实战小例子
		注意Python的字符串本身也用'\'转义,所以要特别注意,一般我们都建议使用Python的r前缀,就不用考虑转义的问题了 1,行的起始 例子:匹配‘cat’ 开头 patt=re.compile( ... 
- Struts2 小例子 --第二弹
		struts-2.5.14.1-all.zip 下载后文件夹说明 apps:war格式的例子文件 lib:引用jar包文件 src:源码文件 docs:帮助文档 小例子: 1.创建web工程:str ... 
随机推荐
- fis3 相关
			fis3 静态资源存放 windows: C:\Users\Administrator\AppData\Local\.fis3-tmp 
- 2019 SDN阅读作业
			2019 SDN阅读作业 1.为什么需要SDN?SDN特点? 答:因为随着网络规模的不断扩大,封闭的网络设备内置了过多的复杂协议,增加了运营商定制优化网络的难度,科研人员无法在真实环境中规模部署新协议 ... 
- 【BZOJ3534】[SDOI2014] 重建(矩阵树定理)
			点此看题面 大致题意: 给你一张图,每条边有一定存在概率.求存在的图刚好为一棵树的概率. 矩阵树定理是什么 如果您不会矩阵树定理,可以看看蒟蒻的这篇博客:初学矩阵树定理. 矩阵树定理的应用 此题中,直 ... 
- a 标签 pointer-events
			a 标签渲染到也页面之后,由于某些原因需要,禁用. 有两种方法可以设置禁用效果. 1.使用 CSS 属性 pointer-events ,设置此属性为 none 之后,元素将不会成为鼠标事件的 tar ... 
- netstat查看端口状态
			netstat netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况. netstat 查看端口占用语法格式: netstat -tunlp | grep 端口号 -t (t ... 
- 关于lambda总结-持续更新
			阅读:https://blog.csdn.net/u013541140/article/details/102710138 1 public static void main(String[] arg ... 
- WPF Xaml中创建集合
			首先在xaml中创建集合是一个不可取的方法. 本方法仅作为xaml的学习. 本文略微无聊,主要是编写的东西都是老玩意. 首先是定义一个类,作为你要加载集合的模型. 结构如下 internal clas ... 
- Java代码开发之《安全规约》
			安全规约 1. [强制]隶属于用户个人的页面或者功能必须进行权限控制校验. 说明:防止没有做水平权限校验就可随意访问.修改.删除别人的数据,比如查看他人的私信内容.修改 他人的订单. 2. [ ... 
- 2019-7-29-win10-UWP-使用-MD5算法
			原文:2019-7-29-win10-UWP-使用-MD5算法 title author date CreateTime categories win10 UWP 使用 MD5算法 lindexi 2 ... 
- 2019-11-23-WPF-使用-RawInput-接收裸数据
			原文:2019-11-23-WPF-使用-RawInput-接收裸数据 title author date CreateTime categories WPF 使用 RawInput 接收裸数据 li ... 
