MATLAB ヘルプ センター
このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
有界領域に対する点の対数バリア ペナルティ値
R2021b 以降
p = barrierPenalty(x,xmin,xmax)
p = barrierPenalty(___,maxValue,curvature)
p = barrierPenalty(x,xmin,xmax) は、xmin と xmax で囲まれた領域に関して、点 x の非負 (対数バリア) ペナルティ ベクトル p を計算します。p は x と同じ次元をもちます。この構文では、バリア関数の maxValue パラメーターと curvature パラメーターにそれぞれ既定値 1 と 0.1 を使用します。
p
x
xmin
xmax
maxValue
curvature
1
0.1
例
p = barrierPenalty(___,maxValue,curvature) は、バリア関数の maxValue パラメーターと curvature パラメーターの両方を指定します。maxValue が空の行列の場合、その既定値が使用されます。同様に、curvature が空の行列であるか省略されている場合、その既定値が使用されます。
すべて折りたたむ
この例では、対数 barrierPenalty 関数を使用して、有界領域に関して、任意の点のバリア ペナルティを計算する方法を示します。
barrierPenalty
最大値と曲率パラメーターの既定値を使用して、区間 [-2,2] 内の点 0.1 のペナルティ値を計算します。
-2
2
barrierPenalty(0.1,-2,2)
ans = 2.5031e-04
区間 [-2,2] 外の点 4 のペナルティ値を計算します。
4
barrierPenalty(4,-2,2)
ans = 1
最大値パラメーター 5 を使用して、区間 [-2,2] 外の点 4 のペナルティ値を計算します。
5
barrierPenalty(4,-2,2,5)
ans = 5
曲率パラメーター 0.5 を使用して、区間 [-2,2] 内の点 0.1 のペナルティ値を計算します。
0.5
barrierPenalty(0.1,-2,2,5,0.5)
ans = 0.0013
最大値の既定値と曲率パラメーター 0 を使用して、x、y、z 次元に沿ってそれぞれ [0,1]、[-1,1]、[-2,2] で定義されたボックスに対して、点 [-2,0,4] のペナルティ値を計算します。
0
-1
barrierPenalty([-2 0 4],[0 -1 -2],[1 1 2],1,0)
ans = 3×1 1 0 1
区間のペナルティ値の可視化
-5 ~ 5 の間に分布する 1001 個の等間隔の点から成るベクトルを作成します。
x = -5:0.01:5;
最大値パラメーターの既定値と曲率パラメーターの値 0.01 を使用して、ベクトル内のすべての点のペナルティを計算します。
0.01
p = barrierPenalty(x,-2,2,1,0.01);
点をプロットし、グリッド、ラベル、およびタイトルを追加します。
plot(x,p) grid xlabel("point position"); ylabel("penalty value"); title("Penalty values over an interval");
ペナルティを計算する点。数値スカラー、ベクトル、または行列として指定します。
例: [0.5; 1.6]
[0.5; 1.6]
x の下限。数値スカラー、ベクトル、または行列として指定します。x 内のすべての要素に同じ最小値を使用するには、xmin をスカラーとして指定します。
例: -1
x の上限。数値スカラー、ベクトル、または行列として指定します。x 内のすべての要素に同じ最大値を使用するには、xmax をスカラーとして指定します。
例: 2
バリア関数の最大値パラメーター。スカラーとして指定します。
バリア関数の曲率パラメーター。スカラーとして指定します。
例: 0.2
ペナルティ値。非負の要素から成るベクトルとして返されます。各要素 pi は、xmini と xmaxi によって指定された間隔に対する xi の位置に依存します。バリア ペナルティ関数は次の値を返します。
pi
xmini
xmaxi
xi
p(x)=min(pmax,C(log(0.25(xmax−xmin)2)−log((x−xmin)(xmax−xmin))))
xmin < x < xmax の場合にこれが返されますが、それ以外の場合は maxValue が返されます。ここで、C は引数 curvature、pmax は引数 maxValue です。C が正の値の場合は、返されるペナルティ値が常に正になることに注意してください。C がゼロの場合は、返されるペナルティは境界によって定義された区間内ではゼロ、その区間外では pmax になります。x が多次元の場合、計算は各次元で個別に適用されます。ペナルティ関数は通常、generateRewardFunction などで、制約違反時に負の報酬を生成するために使用されます。
generateRewardFunction
すべて展開する
R2021b で導入
exteriorPenalty
hyperbolicPenalty
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ