콘텐츠로 이동

재귀 및 상호 배부

일부 비용 모델에서는 한 배부의 대상이 다음 배부의 소스가 되어야 합니다. 예를 들어 공유 서비스가 서로를 사용하는 경우가 있습니다(IT가 HR을 지원하지만 HR도 IT를 지원함). PlaidCloud는 단일 자동 솔버가 아니라 배부 단계를 명시적인 단계별 패스로 연결하여 이를 모델링합니다.

  • 상호 서비스 — 서로를 사용하는 두 비용 풀.
  • 계층적 분산 — 부문 비용이 계층을 따라 단계적으로 전달되며, 하위 수준이 상위 수준을 흡수한 뒤 다시 배부해야 하는 경우.
  • 반복 균형 — 여러 번의 패스 후에 모델이 안정된 결과에 근접하는 경우(풀 A가 B에 일부를 배부하고, B가 다시 일부를 되돌려 배부하는 식).

PlaidCloud에는 내장된 “재귀 모드”가 없고 자동 수렴 솔버도 없습니다. 패스마다 별도의 배부 분할 단계를 추가하고 순서대로 연결하여 재귀를 직접 구성합니다.

  1. 첫 번째 패스를 일반 배부 분할로 실행합니다.
  2. 다음 패스에서는 이전 패스의 출력을 포함하는 소스를 만들고(일반적으로 이전 결과를 풀에 합치거나 조인) 다시 배부합니다.
  3. 모델에 필요한 만큼 반복합니다.

각 패스가 명시적인 단계이므로 실행할 패스 수는 사용자가 결정합니다. 엔진은 상호 관계를 하나의 연립 방정식으로 풀지 않으며, 루프를 자동으로 멈추는 허용 오차 설정도 없습니다. 다시 배부해야 할 잔여분이 목적에 충분할 만큼 작아질 때까지 패스를 추가하십시오.

  • 먼저 단일 패스 배부로 시작하여 단순한 모델이 예상대로 동작하는지 확인한 다음 패스를 추가하십시오.
  • 각 패스 후에 남은 미배부 잔여분을 확인하십시오. 패스를 거듭해도 줄어들지 않는다면 드라이버 관계를 다시 검토하십시오. 진정한 순환 종속성은 패스를 아무리 추가해도 해소되지 않습니다.
  • 모든 패스는 소스를 다시 처리하므로 대규모 데이터 세트에서는 재귀 비용이 큽니다. 전체 소스에서 실행하기 전에 일부 슬라이스로 테스트하십시오.