Q-learning寻径(练手)

采用贪婪算法,每走一步-1,遇到障碍-10,到达+20.终止条件是抵达障碍物或终点,迭代200次。

Q(s,a)=Q(s,a)+alpha*(r+gama*max(Q(s',a'))-Q(s,a))

s'为下一状态,max指的是a'的最大Q值。

maze是地图,1为起点,2终点,3障碍,4路径,0初始值,Q是状态-行为对的value。

代码如下:

maze=[]
size=8
reward_ob=-10
reward_walk=-1
reward_goal=20
Q=[]
alpha=0.5
gama=0.9
pos=[0,0]
ini_x=0
ini_y=0
def init_Q():
    tmp=[]
    tmp1=[]
    for i in range(size+2):
        tmp1=[]
        for j in range(size+2):
            tmp=[]
            for k in range(4):
                tmp.append(0)
            tmp1.append(tmp)
        Q.append(tmp1)            
def init_map():
    global maze,size
    for i in range(size+2):
        tmp=[]
        for j in range(size+2):
            tmp.append(0)
        maze.append(tmp)   
    for i in range(size+2):
        for j in range(size+2):
            if i==0 or j==0 or i==size+1 or j==size+1:
                maze[i][j]=3
    return maze
    
def init_goal(maze,size,x,y,x1,y1):
    globa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值