Main Content

barrierPenalty

경계가 지정된 영역에 대한 점의 로그 장벽 벌점 값

    설명

    예제

    p = barrierPenalty(x,xmin,xmax)xminxmax로 경계가 지정된 영역에 대해 점 x의 음이 아닌 (로그 장벽) 벌점 벡터 p를 계산합니다. px와 차원이 같습니다. 이 구문은 장벽 함수의 maxValuecurvature 파라미터에 대해 각각 디폴트 값 10.1을 사용합니다.

    예제

    p = barrierPenalty(___,maxValue,curvature)는 장벽 함수의 maxValue 파라미터와 curvature 파라미터를 모두 지정합니다. maxValue가 빈 행렬이면 해당 디폴트 값이 사용됩니다. 마찬가지로, curvature가 빈 행렬이거나 생략된 경우에는 해당 디폴트 값이 사용됩니다.

    예제

    모두 축소

    이 예제에서는 로그 barrierPenalty 함수를 사용하여 경계가 지정된 영역에 대해 주어진 점의 장벽 벌점을 계산하는 방법을 보여줍니다.

    최댓값 파라미터와 곡률 파라미터의 디폴트 값을 사용하여 구간 [-2,2] 내에 있는 점 0.1에 대한 벌점 값을 계산합니다.

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

    구간 [-2,2] 밖에 있는 점 4에 대한 벌점 값을 계산합니다.

    barrierPenalty(4,-2,2)
    ans = 1
    

    최댓값 파라미터 5를 사용하여 구간 [-2,2] 밖에 있는 점 4에 대한 벌점 값을 계산합니다.

    barrierPenalty(4,-2,2,5)
    ans = 5
    

    곡률 파라미터 0.5를 사용하여 구간 [-2,2] 내에 있는 점 0.1에 대한 벌점 값을 계산합니다.

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

    최댓값 파라미터의 디폴트 값과 곡률 파라미터 0을 사용하여 x, y, z 차원을 따라 각각 [0,1], [-1,1], [-2,2]로 정의된 상자에 대해 점 [-2,0,4]의 벌점 값을 계산합니다.

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

    구간에 대한 벌점 값 시각화하기

    -55 사이에 분포된 1001개의 등거리 점으로 구성된 벡터를 만듭니다.

    x = -5:0.01:5;

    최댓값 파라미터의 디폴트 값과 곡률 파라미터의 값 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");

    Figure contains an axes object. The axes object with title Penalty values over an interval contains an object of type line.

    입력 인수

    모두 축소

    벌점이 계산되는 점으로, 숫자형 스칼라, 벡터 또는 행렬로 지정됩니다.

    예: [0.5; 1.6]

    x에 대한 하한으로, 숫자형 스칼라, 벡터 또는 행렬로 지정됩니다. x의 모든 요소에 대해 동일한 최솟값을 사용하려면 xmin을 스칼라로 지정하십시오.

    예: -1

    x에 대한 상한으로, 숫자형 스칼라, 벡터 또는 행렬로 지정됩니다. x의 모든 요소에 대해 동일한 최댓값을 사용하려면 xmax를 스칼라로 지정하십시오.

    예: 2

    장벽 함수의 최댓값 파라미터로, 스칼라로 지정됩니다.

    예: 2

    장벽 함수의 곡률 파라미터로, 스칼라로 지정됩니다.

    예: 0.2

    출력 인수

    모두 축소

    벌점 값으로, 음이 아닌 요소로 구성된 벡터로 반환됩니다. 각 요소 pixminixmaxi로 지정된 구간에 대한 xi의 위치에 따라 다릅니다. 장벽 벌점 함수는

    p(x)=min(pmax,C(log(0.25(xmaxxmin)2)log((xxmin)(xmaxxmin))))

    xmin < x < xmax일 때 위와 같은 값을 반환하고, 그렇지 않으면 maxValue를 반환합니다. 여기서 C는 인수 curvature이고 pmax는 인수 maxValue입니다. C가 양수 값인 경우 반환되는 벌점 값은 항상 양수입니다. C가 0인 경우 반환되는 벌점은 경계로 정의된 구간 내에서는 0이고 이 구간 밖에서는 pmax입니다. x가 다차원이면 각 차원에서 독립적으로 계산이 적용됩니다. 벌점 함수는 일반적으로 generateRewardFunction에서와 같이 제약 조건이 위반되었을 때 음의 보상을 생성하는 데 사용됩니다.

    확장 기능

    C/C++ 코드 생성
    MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

    버전 내역

    R2021b에 개발됨