主要内容

barrierPenalty

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

    描述

    例子

    p= barrierPenalty (xxminxmax计算非负(对数势垒)惩罚向量p为了说明这一点x对于边界的区域xmin而且xmaxpx.的默认值1而且0.1maxValue而且曲率势垒函数的参数。

    例子

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

    例子

    全部折叠

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

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

    barrierPenalty (0.1, 2, 2)
    Ans = 2.5031e-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]分别沿x, y和z维度,使用默认值为最大值和曲率参数0

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

    可视化一个区间的惩罚值

    创建一个分布在-之间的1001个等距点的向量5而且5

    X = -5:0.01:5;

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

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

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

    Plot (x,p) grid xlabel(“位置”);ylabel (“刑罚价值”);标题("间隔上的惩罚值");

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

    输入参数

    全部折叠

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

    例子:(0.5;1.6)

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

    例子:-1

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

    例子:2

    屏障函数的最大值参数,指定为标量。

    例子:2

    势垒函数的曲率参数,用标量表示。

    例子:0.2

    输出参数

    全部折叠

    惩罚值,作为非负元素的向量返回。每个元素p取决于位置x对于指定的区间xmin而且xmax.屏障惩罚函数返回值

    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中引入