🔟LangChain: Multi-Agent Simulated Environment with PettingZoo

시뮬레이션 환경으로 멀티 에이전트 시뮬레이션을 정의하는 방법으로 외부에서 정의된 환경으로 에이전트-환경 루프를 만듭니다. 여러 에이전트를 사용하여 이러한 종류의 상호작용 루프를 구현한다는 것입니다. 여기서는 다중 에이전트 환경을 구현할 수 있는 Petting Zoo 라이브러리를 사용합니다.

About Petting Zoo

https://pettingzoo.farama.org

PettingZoo Logo

PettingZoo는 일반적인 다중 에이전트 강화 학습(MARL) 문제를 표현할 수 있는 간단한 파이토닉 인터페이스입니다. PettingZoo에는 다양한 참조 환경, 유용한 유틸리티, 사용자 지정 환경을 만들기 위한 도구가 포함되어 있습니다. 환경은 Gynasiumarrow-up-right과 유사한 인터페이스를 사용하여 상호 작용할 수 있습니다.

About Gymnasium

https://gymnasium.farama.org

Gymnasium Logo

Gymnasium은 OpenAI의 Gym 라이브러리의 유지 관리 포크입니다. Gymnasium인터페이스는 단순하고 파이토닉하며 일반적인 Reinforcement Learning 문제를 표현할 수 있고, 이전 gym 환경을 위한 호환성 래퍼가 있습니다.

Multi-Agent Simulated Environment: Petting Zoo

Setup Environments

GymnasiumAgent

여기서는 Gymnasium 예제에서 정의한 것과 동일한 GymnasiumAgent를 재현합니다. 여러 번 재시도한 후에도 유효한 동작을 수행하지 않으면 무작위 동작을 수행합니다.

Main loop

PettingZooAgent

PettingZooAgentGymnasiumAgent를 다중 에이전트 설정으로 확장한 것입니다. 주요 차이점은 다음과 같습니다:

  • PettingZooAgent는 여러 에이전트 중에서 식별하기 위해 이름 인수를 받습니다.

  • PettingZoo 리포지토리 구조가 Gymnasium 리포지토리와 구조가 다르기 때문에 get_docs 함수가 다르게 구현됩니다.

Rock, Paper, Scissors

이제 PettingZooAgent를 사용하여 다중 에이전트 가위바위보 게임 시뮬레이션을 실행할 수 있습니다.

ActionMaskAgent

일부 PettingZo 환경에서는 에이전트에게 어떤 작업이 유효한지 알려주는 action_mas를 제공합니다`

ActionMaskAgent 서브클래스는 PettingZooAgent를 서브클래스화하여 action_mask의 정보를 사용하여 작업을 선택합니다.

Tic-Tac-Toe

다음은 ActionMaskAgent를 사용하는 틱택토 게임의 예시입니다.

Texas Hold'em No Limit

다음은 ActionMaskAgent를 사용하는 텍사스 홀덤 노 리미트 게임의 예시입니다.

Last updated