主要内容

barrierPenalty

点相对于有界区域的对数势垒惩罚值

    描述

    例子

    p= barrierPenalty (xxminxmax计算非负(对数位垒)惩罚向量p的点x关于被包围的区域xminxmaxp有相同的尺寸x.的默认值10.1maxValue曲率分别为势垒函数的参数。

    例子

    p= barrierPenalty (___maxValue曲率指定的maxValue曲率势垒函数的参数。如果maxValue为空矩阵,则使用其默认值。同样,如果曲率为空矩阵或被省略,则使用其默认值。

    例子

    全部折叠

    这个例子展示了如何使用对数barrierPenalty函数计算给定点相对于有界区域的势垒惩罚。

    计算该点的罚分值0.1在间隔内[-22使用默认值作为最大值和曲率参数。

    barrierPenalty (0.1, 2, 2)
    ans = 2.5031 e-04

    计算该点的罚分值4间隔外[-22].

    barrierPenalty(4、2、2)
    ans = 1

    计算该点的罚分值4间隔外[-22,使用最大值参数5

    barrierPenalty(4、2、2、5)
    ans = 5

    计算区间内0.1点的罚分值[-22,使用的曲率参数为0.5

    barrierPenalty(0.1, 2、2、5、0.5)
    ans = 0.0013

    计算该分的罚分值[-204]相对于由[01], [-11), (-22],使用默认值的最大值和曲率参数0

    barrierPenalty([-2 0 4],[0 -1 -2],[1 1 2],1,0)
    ans =3×11 0 1

    可视化一个区间的惩罚值

    创建一个由1001个等距点组成的向量,分布在-之间55

    x = 5:0.01:5;

    使用最大值参数的默认值和的值,计算向量中所有点的惩罚值0.01求曲率参数。

    p = barrierPenalty (x, 2、2、1,0.01);

    绘制点并添加网格、标签和标题。

    情节(x, p)网格包含(“位置”);ylabel (“刑罚价值”);标题(“一段时间内的惩罚值”);

    图中包含一个轴对象。在一段时间内具有标题惩罚值的axes对象包含一个类型为line的对象。

    输入参数

    全部折叠

    惩罚被计算的点,指定为数值标量、向量或矩阵。

    例子:(0.5;1.6)

    下界的x,指定为数字标量、向量或矩阵。中的所有元素使用相同的最小值x,指定xmin作为一个标量。

    例子:-1

    上界为x,指定为数字标量、向量或矩阵。中的所有元素使用相同的最大值x,指定xmax作为一个标量。

    例子:2

    势垒函数的最大值参数,指定为标量。

    例子:2

    势垒函数的曲率参数,指定为标量。

    例子:0.2

    输出参数

    全部折叠

    惩罚值,作为非负元素的向量返回。每个元素p取决于位置x对于指定的区间xminxmax.barrier惩罚函数返回该值

    p x 最小值 p 马克斯 C 日志 0.25 x 马克斯 x 最小值 2 日志 x x 最小值 x 马克斯 x 最小值

    x最小值< x < x马克斯,maxValue否则。在这里,C的论点是曲率,p马克斯的论点是maxValue.注意,对于C返回的惩罚值总是正的。如果C为零,则返回的惩罚在边界定义的区间内为零,并且p马克斯在这个区间。如果x是多维的,则计算将独立应用于每个维度。惩罚函数通常用于在违反约束时生成负奖励,例如generateRewardFunction

    扩展功能

    C / c++代码生成
    使用MATLAB®Coder™生成C和c++代码。

    介绍了R2021b