에이전트 기반 모델을 설명하기위한 모범 사례


14

저는 수학적 생물학 / 역학 분야에서 상당히 많이 일하고 있습니다. 대부분의 모델링 / 계산 과학 연구는 여전히 ODE 세트에 의해 지배되고 있으며, 때로는 상당히 정교한 ODE 세트가 있습니다. 이 모델의 장점 중 하나는 설명하고 복제하기가 쉽다는 것입니다. 매개 변수 값과 방정식 자체에 대한 표를 제공하며, 연구 수행에 필요한 방식으로 연구를 복제하는 데 필요한 모든 것을 누군가에게 제공했습니다.

그러나 다소 복잡한 모델이 점점 대중화되기 시작했습니다. 특히 에이전트 기반 모델은 출판물에서 설명하기가 어렵고 복제하기가 더 어려워 보입니다 . ODE 세트가 반드시 완벽하게 설명 할 필요 없기 때문 입니다. 독자들이 무슨 일이 있었는지 이해하고 비교적 간단하게 복제 할 수 있도록 이러한 모델을 설명하는 지침이나 실제 경험이 있습니까?


1
공식적으로 설명 된 에이전트 기반 모델은 올바르게 작동하는 일반 미분 방정식과 마찬가지로 결정적이고 재현하기 쉽다는 것을 이해합니다. 문헌에서 몇 가지 구체적인 예를 지적 해 주시겠습니까?
Aron Ahmadia

@AronAhmadia 많은 에이전트 기반 모델은 비 결정적 구성 요소에 의존합니다. 예를 들어, MASON 시뮬레이션 라이브러리 의 제작자 는 난수 생성기의 자체 구현을 포함 할만큼 임의성이 중요하다고 생각했습니다.
Michael McGowan

@MichaelMcGowan-나는 그것에 대해 걱정했다. 난수 생성기에 의해 구동되는 시뮬레이션은 재현성 전략의 일부로 시드 가능해야하지만 이제 과학자들은 통계에 의존하여 결론을 도출해야합니다.
Aron Ahmadia

@AronAhmadia 문제의 일부는 ABM에 대한 공식적인 설명을 구성하는 것에 대해 많은 것을 보지 못했다는 것입니다. 그리고 그것은 확률론의 문제를 떠나게됩니다.
Fomite

답변:


4

나는 그 사업에서 일하지 않지만 순진하게 완전한 설명에 세 부분이 있다고 생각합니다.

  1. 이들이 존재하는 데이터 환경에 대한 설명. 데이터 구조 (그래프 (지정 또는 비 지향, 가중 또는 비가 중), 트리, 배열, ...) 및 각 노드와 연관된 데이터의 관점에서이를 설명하십시오. 테스트 영역 외부의 이웃에 대한주기적인 경계 조건 또는 가정 된 상태와 같은 특수 사례 처리를 기록하십시오. 아마도 이것은 문제의 도메인과 상당히 분명한 관련이 있습니다.

  2. 에이전트의 내부 상태 및 의사 결정 방법에 대한 설명 다시 말하지만, 이것이 합리적으로 명확한 해석을 가지고 있기를 바랍니다.

  3. 에이전트와 조경 사이의 동작 및 업데이트의 상대적인 타이밍 및 / 또는 동기화에 대한 설명; 에이전트 쌍 또는 그룹 간.

의사 코드 (또는 구현 세부 정보로 너무 오염되지 않은 경우 실제 코드)가 도움이 될 것입니다.


2

에이전트 기반 모델을 설명하기 위해 Volker Grimm 및 기타 업체가 제안한 ODD (개요, 설계 및 세부 사항) 프로토콜이 있습니다. 이것은 ABM의 기능을 이해하는 데 필요한 요소 목록으로 구성되며 이러한 모델에 대한 설명을보다 표준화하기위한 것입니다.

설명해야 할 점검 목록은 다음과 같이 구성됩니다.

개요

  1. 목적
  2. 엔티티, 상태 변수 및 스케일
  3. 프로세스 개요 및 일정

디자인

  1. 기본 원리들
  2. 출현
  3. 적응
  4. 목표
  5. 배우기
  6. 예측
  7. 감지
  8. 상호 작용
  9. 확률론
  10. 집단
  11. 관측

세부

  1. 초기화
  2. 입력 데이터
  3. 하위 모델

자세한 내용은

Grimm, V., Berger, U., DeAngelis, DL, Polhill, JG, Giske, J., & Railsback, SR (2010). ODD 프로토콜 : 검토 및 최초 업데이트. 생태 모델링, 221, 2760–2768.


1

지금까지 가장 좋은 방법은 모든 코드를 보충 자료로 포함시키는 것입니다. 가능하면 결과를 재생성하는 데 필요한 관련 임의 시드가 포함 된 파일도 포함하십시오. 이렇게하면 사람들이 결과를 다시 만들 수있을뿐만 아니라 (중요하지 않은) 결과를 더 쉽게 계속할 수 있습니다. 이것은 당신의 일에 새로운 협력과 인용을 허용합니다. 불행히도 이것은 코드를 정리하고 버그가 없는지 확인하는 데 어려움이 있습니다. 따라서 실제로 평소보다 더 이상적입니다. 그러나 최소한 다른 연구원이 코드를 요청하면 결과를 생성하는 데 사용되는 코드 버전을 보관해야합니다.

논문의 설명 측면에서, 모델의 주요 참신한 특징들에 대한 높은 수준의 구현 독립적 인 설명에 집중할 것이다 (이것은 가장 좋은 논문이 달성하는 실질적인 부분이다). 조정 된 경우 결과를 정 성적으로 변경하는 기능에 집중하십시오. 내가 작업하는 대부분의 모델은 정량적 결과를 산출하지만 특정 수량은 일반적으로 관심 대상이 아니며 정 성적 행동 만합니다 (매개 변수가 실제로 관찰 가능한 모델과 거리가 멀기 때문에). 따라서 모델의 일부를 설명하는 데 중점을 두었습니다. 변경하면 시스템의 질적 동작이 변경됩니다. 이 사고 방식으로 모델의 모든 마지막 세부 사항을 구현까지 설명하면 모델이 매우 강력하지 않으므로 폐기해야한다는 것을 알고 있습니다.

논문 내 설명이 충분한 지 테스트하는 좋은 방법은이 프로젝트에서 일하지 않은 친구 (또는 학생)에게 모델을 어떻게 구현할 수 있는지 설명하는 의사 코드를 요청하는 것입니다. 이 작업을 수행하는 동안 문제가 발생하지 않으면 (같은 질적 결과를 생성해야하는 모델의 스케치에 도달하는 것처럼), 설명을 잘 수행 한 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.