No.22 Corticon 2/2를 사용하여 시프트 슬롯 추천을 자동으로 만듭니다
2017.11.06 Progress 슬롯 추천
이 항목은 Assist Co., Ltd. (https : //www.ashisuto.co.jp/product/category/brms/progress_슬롯 추천/column/detail/brmstech22.html)의 재 인쇄입니다.
|
이전 열에서 슬롯 추천의 선언적 및 기능적 프로그래밍 언어를 활용하는 구현 예제로 Shift 테이블을 자동으로 작성하는 규칙을 도입했습니다.
그러나 이전 시프트 슬롯 추천은 간단한 예이므로 절차 적 및 필수 프로그래밍 언어의 강력한 측면을 가진 Corticon의 기능을 사용하지 않았습니다.
이 열에서는보다 복잡한 시프트 슬롯 추천을 만드는 규칙에 중점을 둘 것입니다. 이전 열에서는 요금 정보 만 입력 매개 변수 였지만이 열의 샘플에서는 요금 정보뿐만 아니라 상자 정보도 입력 매개 변수입니다. 입력 매개 변수의 차원 증가와 같은 상황으로 인해 복잡한 처리가 필요한 경우, Corticon의 절차 적 및 필수 언어 측면을 활용하는 규칙을 구현해야합니다.
[기사 쓰기 환경]
슬롯 추천 5.5.2.30 및 5.6.1.6
*이 기사의 샘플은 슬롯 추천 5.5.2.7에서 작동하지 않습니다.
가변 인력 정보 및 프레임 정보로 시프트 슬롯 추천을 자동으로 생성하는 규칙
이 열의 시프트 슬롯 추천 조건은 다음과 같습니다.
- 규칙에 대한 입력 매개 변수는 여러 사람 정보와 여러 프레임 정보이며 항목 수는 가변적입니다.
- 처리 할 수없는 다중 슬롯 추천 정보는 각 개인의 정보에 대해 설정할 수 있습니다. (또한 설정할 수도 없습니다.)
- 각 프레임에 대해 특정 사람을 설정할 수 있습니다. (영구적 인 사람 없이도 할 수 있습니다.)
- 동일한 담당자는 연속 슬롯슬롯 추천 연속적슬롯 추천 보관할 수 없습니다.
이전 열의 시프트 슬롯 추천의 조건과 비교하여 프레임 정보의 입력 매개 변수도 가변적이므로 프레임 수와 조건 (고정 된 사람)을 설정할 수 있습니다.
이것이 유일한 변경 사항이지만 어휘 및 규칙에 큰 변화가 필요하며 지난 시간과 같은 방식슬롯 추천 구현할 수 없습니다.
다음은 어떤 특정 어휘와 규칙을 구현 해야하는지 설명합니다.
■어휘 만들기
이 시프트 슬롯 추천 규칙을 만들 때 다음과 같은 어휘 "Shift Table.ecore"를 만들었습니다.
<시프트 슬롯 추천 .ecore 설정 테이블
엔티티 이름 | 설명 | |
책임있는 사람 | 입력 데이터. 연락처 정보. | |
속성 이름 | type | |
이름 | String | 담당자 이름 |
관련 이름 | 추기경 | |
허용되지 않음 프레임 (허용되지 않음) | 1- * | "프레임이 아님"엔티티와의 관계 |
엔티티 이름 | 설명 | |
프레임 | 입력 데이터. 프레임 정보. | |
속성 이름 | 타입 | |
고정인 | String | 프레임에 고정 된 담당자의 이름. 지정되지 않은 경우 "None" |
프레임 번호 | 정수 | 상자 ID 번호. 1 |
프레임 이름 | String | 프레임 이름 |
엔티티 이름 | 설명 | |
시프트 슬롯 추천 | 출력 데이터. 트리 구조 시프트 슬롯 추천을 나타냅니다. | |
속성 이름 | type | |
최종 후보자 | 부울 | 시프트 슬롯 추천 후보로 올바른지 여부의 조각 |
담당자 이름 | String | 슬롯에 할당 된 사람의 이름 |
프레임 이름 | String | 지정된 프레임 이름 |
관련 이름 | 추기경 | |
시프트 슬롯 추천 (시프트 슬롯 추천) | 1-* | "Shift Table"Entity (self)와의 관계 |
엔티티 이름 | 설명 | |
최종 후보 배열 | 출력 데이터. 시프트 슬롯 추천 트리를 문자열로 변환합니다. | |
속성 이름 | type | |
충전 이름 배열 | String | 프레임에서 주문한 사람의 이름 |
엔티티 이름 | 설명 | |
카운터 | 내부 처리 엔티티. | |
속성 이름 | 타입 | |
i | 정수 | 루프 처리 계산을위한 확장 임시 속성. |
이전 열 "No.21 Corticon 1/2로 자동으로 시프트 슬롯 추천을 만듭니다".
특히 "시프트 슬롯 추천"엔티티에는 자신과 관련된 원형 트리 구조가 있습니다.
우리는 또한 규칙 프로세스 내에서 계산에 사용되는 확장 된 임시 속성 "i"만있는 "카운터"엔티티를 만들고 있습니다.
각각만으로도 어떻게 사용되는지 상상하기가 어렵 기 때문에 특정 입력 및 출력 값과 기사의 후반부 처리에 대한 설명을 확인하십시오.
참조를 위해 다음은 슬롯 추천 Studio로 만든 "Shift Table.ecore"입니다.
<Corticon Studio.ecore에 표시된 시프트 슬롯 추천
|
■규칙 및 규칙 흐름 만들기
아래에 두 개의 규칙 시트를 만들었습니다.
<initialize.ers
|
<Shift Table.ers
|
"초기화"및 "Shift Table.ers"의 내용은 거의 동일하지만 범위, 필터 및 조건은 약간 다릅니다.
또한 각 규칙에 경고 (문자가 노란색 인 경우)가 있습니다. 경고에는 무결성 검사 및 모호성 검사와 같은 코르티콘의 분석 기능을 비활성화하는 것이 포함됩니다. 이 상태는 고정 값뿐만 아니라 "Entity.Attribute"를 규칙 열의 비교 목표로 지정할 때 발생하지만이 경우 무시할 수있는 경고이므로 그대로 두십시오.
다음, 규칙 흐름 "Shift Table.erf"를 만들었습니다. 내용은 다음과 같습니다.
<Shift Table.erf
|
규칙 시트 "Shift Table.ers 만들기"에는 루프가 있습니다 (회전 마크).
■규칙 입력 값 및 실행 결과
규칙 흐름 "Shift Table.erf"에 대한 테스트 시트가 만들어졌습니다.
입력 매개 변수로, 담당자 및 프레임 정보가 다음과 같이 생성되었습니다.
|
입력 매개 변수가 이미지와 동일 할 필요는 없습니다. 매개 변수의 내용을 자유롭게 변경하고 숫자를 늘리거나 줄일 수 있지만이 열의 다음 설명은이 입력 값을 가정합니다.
실행되면 다음과 같은 출력 결과가 반환됩니다.
|
원래 입력 매개 변수는 실행 전 이후로 변경되지 않았으므로 닫힙니다. 대담하게 바뀌었던 엔터티 (새로 창조)에 중점을 둡니다.
출력 결과 변속 테이블은 트리 구조화 된 검색 경로 트리이며 "프레임 5"에 도달하는 경로는 첫 번째 조건에 따라 올바른 조합 경로입니다.
■콘텐츠 처리 설명
우리는이 결과가 얻는 이유를 설명하고 코르티콘이하는 일을 설명 할 것입니다.
이전 열에서는 다음과 같은 코르티콘의 기본 기능을 설명했습니다.
- 모든 입력 데이터의 재귀 처리
- 스코프 별칭 및 필터
- 벌크 등급
자세한 내용은 이전 열을 참조하십시오. 이 1, 2 및 3 기능은 코르티콘의 선언적이고 기능적인 언어 측면을 강력하게 보여줍니다.
이러한 기능 외에도 강력한 명령적이고 절차 적 언어 측면을 가진 슬롯 추천의 기능을 사용하고 있습니다. 다음 특징 :
- 규칙 흐름을 사용하여 규칙 및 데이터가 처리되는 순서를 지정
- ① 슬롯 추천의 규칙 시트 기본 사양은 슬롯 추천이 최적의 순서를 결정한다는 것입니다. 따라서 규칙 열이 처리되는 순서 또는 데이터가 처리되는 순서를 지정할 수 없으며, 시각적 관점에서 처리 될 순서를 결정할 수 없습니다.
② 규칙 열의 처리 순서와 관련하여 어느 정도의 규칙 성이 있으며 슬롯 추천 Studio의 "실행 순서 다이어그램"기능을 사용하여 실제 처리 순서를 확인할 수도 있습니다. 그러나 처리 순서는 마음대로 변경 될 수 없습니다.
③ 또한 특정 데이터 세트 (수집)에서 처리 할 데이터와 같은 데이터가 처리되는 순서는 무엇입니까?
규칙이 없으며 규칙을 실행할 때마다 처리 순서가 변경됩니다.
④ RuleFlow에서 처리 할 규칙 시트와 처리 순서를 명확하게 지정할 수 있습니다. 이 기능을 사용하면 위의 점 ② 및 ③를 다룰 수 있습니다.
⑤ 예를 들어 규칙 시트에서 데이터 세트에서 데이터가 처리되는 순서를 지정할 수는 없지만
필터 및 조건을 사용하여 처리 할 데이터를 제한 할 수 있습니다. 데이터가 다른 여러 규칙 시트를 준비하고 규칙 흐름에서 이러한 규칙 시트를 지정하면 데이터가 처리되는 순서를 지정할 수 있습니다.
이것은 동의어입니다. - 규칙 흐름에서의 루프 처리
- ① 코르티콘은 일반적으로 루프를 지정할 필요가 없습니다. 이전 열에 도입 된 표준 기능 "1. 모든 입력 데이터의 재귀 처리"가 있기 때문입니다.
② 루프 처리를 수행하려는 경우 규칙 흐름의 규칙 시트에 루프를 지정할 수 있습니다.
③ ruleSflow에서 규칙에 대한 루프를 지정하면 처음부터 끝까지 (범위 및 필터링) (모든 규칙 열의 평가 및 실행) 프로세스를 반복하십시오.
④ 최대 반복 수는 코르티콘 설정에 의해 결정됩니다. 설정 항목은
"com.슬롯 추천.reactor.rulebuilder.maxloops"는 기본적으로 100으로 설정됩니다. 100 번 이상 반복하려면이 값을 변경하십시오.
⑤ 루프 종료 조건은 필터에 기록되며, 나머지 데이터가 필터링 될 경우 루프가 종료됩니다.
⑥에서 ③, ④ 및 ⑤ 위의 일반적인 사용법은 특정 엔티티의 값을 규칙 시트의 동작을 증가 시키거나 감소시키는 다음 해당 값을 필터 조건슬롯 추천 지정하는 것입니다.
7) 엔티티/관련 연산자 "SINTEDBY"및 "AT"(※)를 사용하여 위에서 언급 한 데이터를 한 조각슬롯 추천 처리하도록 데이터를 제한하는 개념을 결합하여 위에서 언급 한 "4-5"의 개념을 위에서 언급 한 6-5 "의 가치를 높이거나 감소시키기 위해 위에서 언급 한 개념을 구현할 수 있습니다. 이 열에서 "Shift Table Creation.ers"의 처리 내용에 적용됩니다.
- *SortedBy는 지정된 속성의 값으로 엔티티 세트를 정렬하고 시퀀스라고하는 특수 객체를 반환하는 연산자입니다. AT는 시퀀스의 데이터 수를 지정하고 지정된 숫자로 엔티티를 반환하는 연산자입니다. 자세한 설명 및 특정 사용 지침은 제품 매뉴얼 "Rule Language Guide"를 참조하십시오.
특히이 샘플의 데이터 및 처리 흐름에 따라 다음 이미지가 표시됩니다.
<초기화 프로세스
|
<시프트 슬롯 추천 생성 프로세스
|
필요한 모든 시프트 슬롯 추천 (검색 경로 트리)이 "Shift Table Creation.ers"프로세스에서 릴리스 되므로이 결과를 클라이언트에게 직접 전달하면 시각적 형성과 같은 후 처리가 클라이언트 측에서 전달되어야합니다. 그러나 실제 요구 사항에서는 코르티콘 쪽에서이 결과를 어느 정도 성형을 수행해야 할 수도 있습니다. Corticon의 규칙을 사용하여 완성 된 시프트 슬롯 추천의 추가 점수 또는 평가를 수행 할 수도 있습니다.
나는이 칼럼에서 설명되지 않지만, 규칙 시트 "Shift Table.ers를 만들기"후 작업을 수행하는 흐름에 규칙 시트를 추가하면 "5 번째 프레임에 도달 한 경로에서 최종 후보자 플래그를 만듭니다"와 "최종 후보자 이름 배열)는 최종 후보자가 전시 될 것입니다. 다음과 같이.
<형성 후 출력
|
요약
어떻게 생각 했습니까?
규칙 시트는 이전 시프트 슬롯 추천 샘플보다 약간 어렵지만 특성을 명령적이고 절차 적 언어로 활용함으로써 유연한 입력 및 출력 및 규칙을 만들 수있게되었습니다. 따라서이 시프트 슬롯 추천 샘플을 사용하면 담당자와 프레임에 더 많은 속성과 다양한 조건을 추가하는 실용적인 시프트 슬롯 추천을 만들 수도 있습니다.
슬롯 추천은 원래 선언적이고 기능적인 언어의 강력한 측면을 가지고 있기 때문에 정상적인 명령 및 절차 적 언어 어레이 처리와 같은 구현은 그다지 적합하지 않으며이 칼럼과 같은 처리를 위해서는 클라이언트 측 응용 프로그램에서 구현되며 슬롯 추천의 Extension Operators 및 Service Callouts (※)를 사용합니다.
그러나 규칙 작성 방법에 따라 표준 코르티콘 기능만슬롯 추천 복잡한 알고리즘을 구현할 수 있습니다.
관심이 있으시면코르티콘 경험 세미나에 참여해 주셔서 감사합니다.
- *Extension Operator/Service Callout은 슬롯 추천 규칙 내에서 Java 프로그램을 실행하는 기능입니다. 자세한 내용은 열"No.10 슬롯 추천 's [Extension Operator] 및 [Service Callout]을 사용하여 규칙을 구현하는 방법" 참조.
저자 소개
|
정보 인프라 기술 부서, 진행 프로모션 부서 |