SDMP User Manual (KOR)
  • 개요
    • SDMP 소개
  • 프로젝트 생성
    • 프로젝트 생성
  • 데이터 핸들링
    • 입력 데이터 로딩
      • 입력 데이터 스키마 정의
      • 입력 데이터 정의
      • 입력 데이터 로딩
    • 데이터 조회
    • 출력 데이터 쓰기
      • 출력 데이터 스키마 정의
      • 출력 데이터 추가
      • 파일 출력
  • General Module
    • 모듈 개요
    • 사용자 컨트롤
      • StateControl
      • ActionControl
      • StateTransitionControl
      • BoundControl
      • ApproximationControl
      • SolverControl
      • EventControl
      • DataControl
      • LogControl
    • 데이터 모델
      • State
    • 활용 사례
      • Car Resequencing Problem
      • Lot Sizing Problem
  • Routing Module
    • 모듈 개요
    • 사용자 컨트롤
      • CustomerControl
      • VehicleControl
    • 데이터 모델
    • 활용 사례
      • Vehicle Routing Problem
  • Scheduling Module
    • 모듈 개요
    • 사용자 컨트롤
    • 데이터 모델
    • 활용 사례
Powered by GitBook
On this page
  1. General Module
  2. 사용자 컨트롤

ActionControl

Action과 관련된 기능을 담당하는 컨트롤

GetStateActionMaps

public virtual List<DataModel.StateActionMap> GetStateActionMaps(State state)

정의

주어진 State에서 고려할 Action 집합을 정의합니다.

매개변수

Type
Description

State

대상 State 입니다.

반환

Type
Description
Default

List<StateActionMap>

StateActionMap 리스트 입니다.

Empty List

예제

public override List<StateActionMap> GetStateActionMaps(State state)
{
    List<StateActionMap> maps = new List<StateActionMap>();
    CRPData data = DataManager.Instance.Data as CRPData;

    CRPState fromState = state as CRPState;
    Dictionary<int, CRPConveyor> stateInfo = fromState.StateInfo;

    CRPJob lastJob = fromState.LastRetrievedJob;

    for (int i = 1; i <= CRPParameter.CONV_NUM; i++)
    {
        CRPConveyor conv = stateInfo[i];

        if (conv.JobCount <= 0)
        {
            continue;
        }

        CRPState toState = new CRPState();
        toState.SetStateInfo(stateInfo);
        CRPJob toJob = toState.RetrieveJob(i);

        StateActionMap map = new StateActionMap();
        map.PreActionState = fromState;
        map.PostActionState = toState;

        double cost = 0;

        if (lastJob != null && lastJob.Color.ColorNumber != toJob.Color.ColorNumber)
            cost = 1;

        map.Cost = cost;

        if (toState.JobCount <= 0) 
        {
            toState.IsLastStage = true;
        }

        maps.Add(map);
    }

    return maps;
}
PreviousStateControlNextStateTransitionControl

Last updated 1 year ago