Git Product home page Git Product logo

mfrl's Introduction

Mean Field Multi-Agent Reinforcement Learning

Implementation of MF-Q and MF-AC in the paper Mean Field Multi-Agent Reinforcement Learning .

Example

image

An 20x20 Ising model example under the low temperature.

A 40x40 Battle Game gridworld example with 128 agents, the blue one is MFQ, and the red one is IL.

Code structure

  • main_MFQ_Ising.py: contains code for running tabular based MFQ for Ising model.

  • ./examples/: contains scenarios for Ising Model and Battle Game (also models).

  • battle.py: contains code for running Battle Game with trained model

  • train_battle.py: contains code for training Battle Game models

Compile Ising environment and run

Requirements

  • python==3.6.1
  • gym==0.9.2 (might work with later versions)
  • matplotlib if you would like to produce Ising model figures

Compile MAgent platform and run

Before running Battle Game environment, you need to compile it. You can get more helps from: MAgent

Steps for compiling

cd examples/battle_model
./build.sh

Steps for training models under Battle Game settings

  1. Add python path in your ~/.bashrc or ~/.zshrc:

    vim ~/.zshrc
    export PYTHONPATH=./examples/battle_model/python:${PYTHONPATH}
    source ~/.zshrc
  2. Run training script for training (e.g. mfac):

    python3 train_battle.py --algo mfac

    or get help:

    python3 train_battle.py --help

Paper citation

If you found it helpful, consider citing the following paper:



@InProceedings{pmlr-v80-yang18d,
  title = 	 {Mean Field Multi-Agent Reinforcement Learning},
  author = 	 {Yang, Yaodong and Luo, Rui and Li, Minne and Zhou, Ming and Zhang, Weinan and Wang, Jun},
  booktitle = 	 {Proceedings of the 35th International Conference on Machine Learning},
  pages = 	 {5567--5576},
  year = 	 {2018},
  editor = 	 {Dy, Jennifer and Krause, Andreas},
  volume = 	 {80},
  series = 	 {Proceedings of Machine Learning Research},
  address = 	 {Stockholmsmässan, Stockholm Sweden},
  month = 	 {10--15 Jul},
  publisher = 	 {PMLR}
}

mfrl's People

Contributors

kornbergfresnel avatar mlii avatar wwxfromtju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mfrl's Issues

Meet several undeclared identifier

Running this project on macOS, Clion. Meet these errors. Any suggestions?

====================[ Build | render | Debugllvm ]==============================
/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --build /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/cmake-build-debugllvm --target render -- -j 9
Scanning dependencies of target render
[ 14%] Building CXX object CMakeFiles/render.dir/src/render/backend/data.cc.o
[ 28%] Building CXX object CMakeFiles/render.dir/src/render/backend/render.cc.o
[ 57%] Building CXX object CMakeFiles/render.dir/src/render/backend/utility/logger.cc.o
[ 71%] Building CXX object CMakeFiles/render.dir/src/render/backend/utility/config.cc.o
[ 71%] Building CXX object CMakeFiles/render.dir/src/render/backend/text.cc.o
[ 85%] Building CXX object CMakeFiles/render.dir/src/render/backend/websocket.cc.o
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/data.cc:1:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/fstream:183:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ostream:138:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:214:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:95:
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:137:77: error: use of undeclared identifier 'wcschr'
wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcschr(__s, __c);}
^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/render.cc:1:
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/server.h:4:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/fstream:183:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ostream:138:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:214:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:95:
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:137:77: error: use of undeclared identifier 'wcschr'
wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:144:87: error: use of undeclared identifier 'wcspbrk'
wchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcspbrk(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:151:78: error: use of undeclared identifier 'wcsrchr'; did you mean 'wcschr'?
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:144:87: error: use of undeclared identifier 'wcspbrk'
wchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcsrchr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:139:16: note: 'wcschr' declared here
wchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcspbrk(__s1, __s2);}
^
const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:86: error: use of undeclared identifier 'wcsstr'; did you mean 'wcschr'?
wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:16: note: 'wcschr' declared here
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:86: error: no matching function for call to 'wcschr'
wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:16: note: candidate disabled:
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:93: error: cannot initialize a parameter of type 'wchar_t ' with an lvalue of type 'const wchar_t '/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:
151:78: error: use of undeclared identifier 'wcsrchr'; did you mean 'wcschr'?
wchar_t
__libcpp_wcsstr(const wchar_t
__s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^~~~
wchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcsrchr(__s, __c);}
^/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h
:141:38: note: /usr/local/opt/llvm/bin/../include/c++/v1/wchar.hpassing argument to parameter '__s' here:139
:16: note: 'wcschr' declared here
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:165:60: error: unknown type name 'size_t'
wchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return (wchar_t*)wmemchr(__s, __c, __n);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h::158167::8657:: errorerror: : use of undeclared identifier 'wcsstr'; did you mean 'wcschr'?unknown type name 'size_t'

const wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}
^
wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:16: note: 'wcschr' declared here
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:86: error: no matching function for call to 'wcschr'
wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:16: note: candidate disabled:
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:169:57: error: unknown type name 'size_t'
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
wchar_t* wmemchr( wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:93: error: cannot initialize a parameter of type 'wchar_t ' with an lvalue of type 'const wchar_t '
wchar_t
__libcpp_wcsstr(const wchar_t
__s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}In file included from
/Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/utility/config.cc: ^~~~
1:
/usr/local/opt/llvm/bin/../include/c++/v1/string.h/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h::73141::6438:: errornote: : passing argument to parameter '__s' here
use of undeclared identifier 'strchr'
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
char* __libcpp_strchr(const char* __s, int __c) {return (char*)strchr(__s, __c);}
^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/text.cc:4:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/math.h:308:
/usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:142:34: error: /usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:165unknown type name 'ldiv_t':60
: error: unknown type name 'size_t'
wchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return (wchar_t*)wmemchr(__s, __c, __n);}inline _LIBCPP_INLINE_VISIBILITY ldiv_t div(long __x, long __y) _NOEXCEPT {

                                                       ^                                 ^

/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:167:57: error: unknown type name 'size_t'
/usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:143:12: error: no member named 'ldiv' in the global namespace
return ::ldiv(__x, __y);
~~^
const wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:80:75: error: use of undeclared identifier 'strpbrk'
char* __libcpp_strpbrk(const char* __s1, const char* __s2) {return (char*)strpbrk(__s1, __s2);}
^
In file included from In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/data.cc/Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.cc::1:
1In file included from :
/usr/local/opt/llvm/bin/../include/c++/v1/fstream:In file included from 183/Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.h:
:In file included from 4/usr/local/opt/llvm/bin/../include/c++/v1/ostream:
:In file included from 138/usr/local/include/websocketpp/config/asio_no_tls_client.hpp:
:In file included from 31/usr/local/opt/llvm/bin/../include/c++/v1/ios:
:In file included from 214/usr/local/include/websocketpp/config/core_client.hpp:
:38:
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwdIn file included from :/usr/local/include/websocketpp/concurrency/basic.hpp189::3114:
:In file included from /usr/local/include/websocketpp/common/thread.hpp:59error:
: In file included from /usr/local/opt/llvm/bin/../include/c++/v1/thread:use of undeclared identifier 'mbstate_t'86:

In file included from /usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:95:
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:137:77: typedef fpos<mbstate_t> streampos;/usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h
:error146 ^: :
34/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:: 169use of undeclared identifier 'wcschr':57
error:: unknown type name 'lldiv_t'error:
unknown type name 'size_t'
inline _LIBCPP_INLINE_VISIBILITY lldiv_t div(long long __x,
^
wchar_t* wmemchr( wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcschr(__s, __c);}

                                                    ^                                                                            ^

/usr/local/opt/llvm/bin/../include/c++/v1/stdlib.h:148:12: /usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:error190: :14no member named 'lldiv' in the global namespace
: error: use of undeclared identifier 'mbstate_t' return ::lldiv(__x, __y);

     ~~^

typedef fpos<mbstate_t> wstreampos;
^
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:195:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> u16streampos;
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:87:65: error: use of undeclared identifier 'strrchr'; did you mean 'strchr'?
char* __libcpp_strrchr(const char* __s, int __c) {return (char*)strrchr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:75:13: note: 'strchr' declared here
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:144:87: error: use of undeclared identifier 'wcspbrk'
const char* strchr(const char* __s, int __c) {return __libcpp_strchr(__s, __c);}
^
wchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcspbrk(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:196:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> u32streampos;
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:94:49: error: unknown type name 'size_t'
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:151:78: error: use of undeclared identifier 'wcsrchr'; did you mean 'wcschr'?
void* __libcpp_memchr(const void* __s, int __c, size_t __n) {return (void*)memchr(__s, __c, __n);}
^
wchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcsrchr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:139:16: note: 'wcschr' declared here
const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:96:46: error: unknown type name 'size_t'
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/render.ccconst void* memchr(const void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);}:
1:
^In file included from
/Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/server.h:4:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/fstream:183:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ostream:138:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:214:
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:189:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> streampos;
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:86: error: use of undeclared identifier 'wcsstr'; did you mean 'wcschr'?
wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:16: note: 'wcschr' declared here
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:98:46: wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
error: ^
unknown type name 'size_t'
void* memchr( void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);}
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h ^:
158:86: error: no matching function for call to 'wcschr'
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:190:wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}14
: ^
error: use of undeclared identifier 'mbstate_t'
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:16: notetypedef fpos<mbstate_t> wstreampos;:
candidate disabled: ^

  wchar_t* wcschr(      wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
           ^

/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:93: error: cannot initialize a parameter of type 'wchar_t ' with an lvalue of type 'const wchar_t '
wchar_t
__libcpp_wcsstr(const wchar_t
__s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^~~~
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:38: note: passing argument to parameter '__s' here
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:101:74: error: use of undeclared identifier 'strstr'; did you mean 'strchr'?
char* __libcpp_strstr(const char* __s1, const char* __s2) {return (char*)strstr(__s1, __s2);}
^/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd
:195:14: /usr/local/opt/llvm/bin/../include/c++/v1/string.h:77error:: 13: use of undeclared identifier 'mbstate_t'
note: 'strchr' declared here
typedef fpos<mbstate_t> u16streampos;
^
char* strchr( char* __s, int __c) {return __libcpp_strchr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:101:74: error: no matching function for call to 'strchr'
char* __libcpp_strstr(const char* __s1, const char* __s2) {return (char*)strstr(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:77:13: note: candidate disabled:
char* strchr( char* __s, int __c) {return __libcpp_strchr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:101:81: error: cannot initialize a parameter of type 'char ' with an lvalue of type 'const char '
char
__libcpp_strstr(const char
__s1, const char* __s2) {return (char*)strstr(__s1, __s2);}
^~~~
/usr/local/opt/llvm/bin/../include/c++/v1/string.h:77:/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd32::196 :14:note : passing argument to parameter '__s' hereerror:
use of undeclared identifier 'mbstate_t'
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:165:60: error: unknown type name 'size_t'typedef fpos<mbstate_t> u32streampos;

         ^
  char* strchr(      char* __s, int __c) {return __libcpp_strchr(__s, __c);}
                           ^

wchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return (wchar_t*)wmemchr(__s, __c, __n);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:167:57: error: unknown type name 'size_t'
const wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:169:57: error: unknown type name 'size_t'
wchar_t* wmemchr( wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}
^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.cc:1:
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.h:4:
In file included from /usr/local/include/websocketpp/config/asio_no_tls_client.hpp:31:
In file included from /usr/local/include/websocketpp/config/core_client.hpp:38:
In file included from /usr/local/include/websocketpp/concurrency/basic.hpp:31:
In file included from /usr/local/include/websocketpp/common/thread.hpp:59:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/thread:86:
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:189:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> streampos;
^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/data.cc:1:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/fstream:183:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ostream:138:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:215:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__locale:14:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/string:506:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/string_view:175:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__string:57:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/algorithm:639:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:46:
/usr/local/opt/llvm/bin/../include/c++/v1/cstddef:49:9: error: no member named 'ptrdiff_t' in the global namespace
using ::ptrdiff_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:190:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> wstreampos;
^
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:195:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> u16streampos;
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstddef:50:9: error: no member named 'size_t' in the global namespace
using ::size_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:196:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> u32streampos;
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstddef:53:9: error: no member named 'max_align_t' in the global namespace
using ::max_align_t;
~~^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/utility/config.cc:2:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/iostream:37:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:214:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:95:
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:137:77: error: use of undeclared identifier 'wcschr'
wchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcschr(__s, __c);}
^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/data.cc:1:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/fstream:183:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ostream:138:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:215:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__locale:14:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/string:506:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/string_view:175:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__string:57:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/algorithm:639:
/usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:61:5: error: unknown type name 'size_t'
size_t _size;
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:144:87: error: use of undeclared identifier 'wcspbrk'
wchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcspbrk(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:65:38: error: unknown type name 'size_t'
initializer_list(const _Ep* __b, size_t __s) _NOEXCEPT
^
/usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:73:13: error: unknown type name 'size_t'
typedef size_t size_type;
^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.cc:1:
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.h:4:
In file included from /usr/local/include/websocketpp/config/asio_no_tls_client.hpp:31:
In file included from /usr/local/include/websocketpp/config/core_client.hpp:38:
In file included from /usr/local/include/websocketpp/concurrency/basic.hpp:31:
In file included from /usr/local/include/websocketpp/common/thread.hpp:59:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/thread:87:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__functional_base:14:
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.hIn file included from :/usr/local/opt/llvm/bin/../include/c++/v1/type_traits151::41778:
: /usr/local/opt/llvm/bin/../include/c++/v1/cstddef:error: 49:9use of undeclared identifier 'wcsrchr'; did you mean 'wcschr'?:
error: no member named 'ptrdiff_t' in the global namespace
using ::ptrdiff_t;wchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcsrchr(__s, __c);}

  ~~^                                                                             ^

/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:139:16: note: 'wcschr' declared here
const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
/usr/local/opt/llvm/bin/../include/c++/v1/cstddef:50:9: error: no member named 'size_t' in the global namespace
using ::size_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:86: error: use of undeclared identifier 'wcsstr'; did you mean 'wcschr'?
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/render.cc:1:
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/server.h:4:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/fstream:183:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ostream:138:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:215:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__locale:14:
In file included from wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}/usr/local/opt/llvm/bin/../include/c++/v1/string
:506 ^:

In file included from /usr/local/opt/llvm/bin/../include/c++/v1/string_view:175:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/wchar.h/usr/local/opt/llvm/bin/../include/c++/v1/__string::14157::
16In file included from :/usr/local/opt/llvm/bin/../include/c++/v1/algorithm :639:
noteIn file included from : /usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:'wcschr' declared here46:

/usr/local/opt/llvm/bin/../include/c++/v1/cstddef:49:9: error: no member named 'ptrdiff_t' in the global namespace
using ::ptrdiff_t;
~~^
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:86: error: no matching function for call to 'wcschr'
wchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:16: note: /usr/local/opt/llvm/bin/../include/c++/v1/cstddefcandidate disabled: :53
:9: error: no member named 'max_align_t' in the global namespace
using ::max_align_t;
~~^
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:158:93: error: cannot initialize a parameter of type 'wchar_t ' with an lvalue of type 'const wchar_t '
wchar_t
__libcpp_wcsstr(const wchar_t
__s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}
^~~~
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:141:38: note: passing argument to parameter '__s' here
/usr/local/opt/llvm/bin/../include/c++/v1/cstddef:50:9: error: no member named 'size_t' in the global namespace
using ::size_t;
~~^
wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstddef:53:9: error: no member named 'max_align_t' in the global namespace
using ::max_align_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:165:60: error: unknown type name 'size_t'
wchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return (wchar_t*)wmemchr(__s, __c, __n);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:167:57: error: unknown type name 'size_t'
const wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}
^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/render.cc:1:
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/server.h:4:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/fstream:183:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ostream:138:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:215:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__locale:14:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/string:506:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/string_view:175:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__string:57:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/algorithm:639:
/usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:61:5: error: unknown type name 'size_t'
size_t _size;
^
/usr/local/opt/llvm/bin/../include/c++/v1/wchar.h:169:57: error: unknown type name 'size_t'
wchar_t* wmemchr( wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:65:38: error: unknown type name 'size_t'
initializer_list(const _Ep* __b, size_t __s) _NOEXCEPT
^
/usr/local/opt/llvm/bin/../include/c++/v1/initializer_list:73:13: error: unknown type name 'size_t'
typedef size_t size_type;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/utility/config.cc:2:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/iostream:37:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ios:214:
/usr/local/opt/llvm/bin/../include/c++/v1/iosfwd:189:14: error: use of undeclared identifier 'mbstate_t'
typedef fpos<mbstate_t> streampos;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.cc:1:
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/websocket.h:4:
In file included from /usr/local/include/websocketpp/config/asio_no_tls_client.hpp:31:
In file included from /usr/local/include/websocketpp/config/core_client.hpp:38:
In file included from /usr/local/include/websocketpp/concurrency/basic.hpp:31:
In file included from /usr/local/include/websocketpp/common/thread.hpp:59:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/thread:87:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__functional_base:14:
/usr/local/opt/llvm/bin/../include/c++/v1/type_traits:1553:32: error: use of undeclared identifier 'size_t'; did you mean 'sizeof'?
: public integral_constant<size_t, 0> {};
^
/usr/local/opt/llvm/bin/../include/c++/v1/type_traits:1553:38: error: expected expression
: public integral_constant<size_t, 0> {};
^
/usr/local/opt/llvm/bin/../include/c++/v1/type_traits:1555:32: error: use of undeclared identifier 'size_t'; did you mean 'sizeof'?
: public integral_constant<size_t, rank<_Tp>::value + 1> {};
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/utility/logger.cc:1:
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/utility/logger.h:4:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/mutex:190:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/__mutex_base:14:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/chrono:829:
In file included from /usr/local/opt/llvm/bin/../include/c++/v1/ratio:81:
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:157:8: error: no member named 'uint8_t' in the global namespace
using::uint8_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:158:8: error: no member named 'uint16_t' in the global namespace
using::uint16_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:159:8: error: no member named 'uint32_t' in the global namespace
using::uint32_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:160:8: error: no member named 'uint64_t' in the global namespace
using::uint64_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:162:8: error: no member named 'int_least8_t' in the global namespace
using::int_least8_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:163:8: error: no member named 'int_least16_t' in the global namespace
using::int_least16_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:164:8: error: no member named 'int_least32_t' in the global namespace
using::int_least32_t;
~~^
In file included from /Users/lindsaymorgan/Desktop/mfrl/examples/battle_model/src/render/backend/text.cc:4:
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:771:93: error: no member named 'acosf' in the global namespace; did you mean 'acos'?
inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return ::acosf(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:771:46: note: 'acos' declared here
inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return ::acosf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:165:8: error: no member named 'int_least64_t' in the global namespace
using::int_least64_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:772:93: error: no member named 'acosl' in the global namespace; did you mean 'acos'?
inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return ::acosl(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:771:46: note: 'acos' declared here
inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return ::acosf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:778:38: error: call to 'acos' is ambiguous
acos(_A1 __lcpp_x) _NOEXCEPT {return ::acos((double)__lcpp_x);}
^~~~~~
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:771:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return ::acosf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:772:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return ::acosl(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:167:8: error: no member named 'uint_least8_t' in the global namespace
using::uint_least8_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:783:93: error: no member named 'asinf' in the global namespace; did you mean 'asin'?
inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return ::asinf(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:783:46: note: 'asin' declared here
inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return ::asinf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:784:93: error: no member named 'asinl' in the global namespace; did you mean 'asin'?
inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return ::asinl(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:783:46: note: 'asin' declared here
inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return ::asinf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:790:38: error: call to 'asin' is ambiguous
asin(_A1 __lcpp_x) _NOEXCEPT {return ::asin((double)__lcpp_x);}
^~~~~~
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:783:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return ::asinf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:784:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return ::asinl(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:168:8: error: no member named 'uint_least16_t' in the global namespace
using::uint_least16_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:795:93: error: no member named 'atanf' in the global namespace; did you mean 'atan'?
inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return ::atanf(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:795:46: note: 'atan' declared here
inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return ::atanf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:796:93: error: no member named 'atanl' in the global namespace; did you mean 'atan'?
inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return ::atanl(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:795:46: note: 'atan' declared here
inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return ::atanf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:802:38: error: call to 'atan' is ambiguous
atan(_A1 __lcpp_x) _NOEXCEPT {return ::atan((double)__lcpp_x);}
^~~~~~
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:795:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return ::atanf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:796:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return ::atanl(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:169:8: error: no member named 'uint_least32_t' in the global namespace
using::uint_least32_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:807:116: error: no member named 'atan2f' in the global namespace; did you mean 'atan2'?
inline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return ::atan2f(__lcpp_y, __lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:807:46: note: 'atan2' declared here
inline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return ::atan2f(__lcpp_y, __lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:808:116: error: no member named 'atan2l' in the global namespace; did you mean 'atan2'?
inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return ::atan2l(__lcpp_y, __lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:807:46: note: 'atan2' declared here
inline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return ::atan2f(__lcpp_y, __lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:170:8: error: no member named 'uint_least64_t' in the global namespace
using::uint_least64_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:830:93: error: no member named 'ceilf' in the global namespace; did you mean 'ceil'?
inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ::ceilf(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:830:46: note: 'ceil' declared here
inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ::ceilf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:172:8: error: no member named 'int_fast8_t' in the global namespace
using::int_fast8_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:831:93: error: no member named 'ceill' in the global namespace; did you mean 'ceil'?
inline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ::ceill(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:830:46: note: 'ceil' declared here
inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ::ceilf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:837:38: error: call to 'ceil' is ambiguous
ceil(_A1 __lcpp_x) _NOEXCEPT {return ::ceil((double)__lcpp_x);}
^~~~~~
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:830:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ::ceilf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:831:46: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ::ceill(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:173:8: error: no member named 'int_fast16_t' in the global namespace
using::int_fast16_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:842:92: error: no member named 'cosf' in the global namespace; did you mean 'cos'?
inline _LIBCPP_INLINE_VISIBILITY float cos(float __lcpp_x) _NOEXCEPT {return ::cosf(__lcpp_x);}
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/math.h:842:46: note: 'cos' declared here
inline _LIBCPP_INLINE_VISIBILITY float cos(float __lcpp_x) _NOEXCEPT {return ::cosf(__lcpp_x);}
^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:174:8: error: no member named 'int_fast32_t' in the global namespace
using::int_fast32_t;
~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:175:8: error: no member named 'int_fast64_t' in the global namespace
using::int_fast64_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:177:8: error: no member named 'uint_fast8_t' in the global namespace
using::uint_fast8_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:178:8: error: no member named 'uint_fast16_t' in the global namespace
using::uint_fast16_t;
~~^
/usr/local/opt/llvm/bin/../include/c++/v1/cstdint:179:8: error: no member named 'uint_fast32_t' in the global namespace
using::uint_fast32_t;
~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[3]: *** [CMakeFiles/render.dir/src/render/backend/utility/config.cc.o] Error 1
make[3]: *** Waiting for unfinished jobs....
20 errors generated.
make[3]: *** [CMakeFiles/render.dir/src/render/backend/utility/logger.cc.o] Error 1
20 errors generated.
make[3]: *** [CMakeFiles/render.dir/src/render/backend/text.cc.o] Error 1
20 errors generated.
make[3]: *** [CMakeFiles/render.dir/src/render/backend/data.cc.o] Error 1
20 errors generated.
make[3]: *** [CMakeFiles/render.dir/src/render/backend/websocket.cc.o] Error 1
20 errors generated.
make[3]: *** [CMakeFiles/render.dir/src/render/backend/render.cc.o] Error 1
make[2]: *** [CMakeFiles/render.dir/all] Error 2
make[1]: *** [CMakeFiles/render.dir/rule] Error 2
make: *** [render] Error 2

code

Hello, I'm watching your paper "Efficient Ride Sharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning", and I'm very interested. Can you mention relevant codes and data sets? I promise to quote your paper in future works and look forward to your reply

How you define observation of agents?

I have read the paper: Mean Field Multi-Agent Reinforcement Learning. However, I wonder how you define the observation of agents, since I did find corresponding description in the paper. Do the agents are able to get a full observation or local observation, especially in the battle game?

Is the `type.move_base` a replication mistake?

File: examples/battle_model/src/gridworld/GridWorld.cc.
Line: 423, 432, 447.

Is the type.move_base a replication mistake?
According to my understanding, this should be replaced by type.turn_base.

Thanks!

How to get average action during test?

Hi, recently I am trying to reproduce your work and feel a little confused about following question:

  1. How to get average action during test? During training, we can obtain average action. However, during test, such action cannot be observed. I have carefully read your code, and found that you have adopted the average action in last step?
  2. How you calculate the average action among neighbors? In your implementation, it seems that each node can observe all other players, thus the average is taken over all players?
    It's really strange.

How to implement MAAC/MFAC for Gaussian Squeezing?

Hi I recently get some confusion when trying to reproduce your work, particular about experiment (1) on gaussian squeezing. According to my understanding in order to implement MAA2C algorithm as described in the DeepMind's NeurIPS 17 paper, the critic network should represent the Q-value function which takes joint action of the players into input. However, it seems that gaussian squeeze task is a stateless environment. According to your implementation details, there is a discount factor \gamma for AC methods but not for Q-learning method. So how do you define the state for gaussian squeezing? And if it is stateless, how can one use A2C methods?

how to run battle.py

image

问题的初衷:
我想要把用MFAC训练好的模型和用AC训练好的模型进行对比,让这两个算法进行交叉战斗实验。在终端运行如下:python battle.py --algo mfac --oppo ac --idx 10 10

仍然抛出异常:
ValueError: The passed save_path is not a valid checkpoint: /home/lzh/postgraduate project/mfrl-master/data/models/mfac-0/mfac_1

疑惑的点:
1)如何运行battle.py
2) 参数--idx 如何设置parser.add_argument('--idx', nargs='*', required=True)
image

minor typos

there are some minor typos on ./examples/battle_model/algo/ac.py
tf.dense( >tf.layers.dense(
unit > units
action > activation

thanks for your effort :)

Why the number of agents has not decreased in battle game?

hi,i am trying to reproduce the battle game (red army use MFQ and blue army use DQN.) i trained the model and find both algorithums has a negative reward.and the agents number of two side has not decreased in the battle which is confused.can u help me?

1 JPG

Does self.temperature in base.py need to be updated to a placeholder?

In senario_battle.py
def play():
acts[i] = models[i].act(state=state[i], prob=former_act_prob[i], eps=eps)

In base.py
def act():
self.temperature = kwargs['eps']

However, self.temperature is not put into feed_dict. I've noticed that it is a float instead of a tensor (i.e. tf.placeholder).
Is it just enough to be a float? What is the difference between float and placeholder in this specific case?

Gaussian Squeeze (GS)

Do you have an implementation of Gaussian Squeeze (GS)?
Do you have the pytorch version of the average field multi-agent reinforcement learning code?

What is the meaning of ‘minimap’?

Hello, I recently looked at your code, I don’t understand the meaning of ‘minimap’, and I want to know what ‘minimap_mode’ is? I look forward to hearing from you.

how you define the markov state?

I have read the paper Mean Field Multi-Agent Reinforcement Learning,agent's state is global or individual?would you mind explaining me the battle game'markov state.Thx!

ModuleNotFoundError: No module named 'magent'

I use Ubuntu System, and when I try run "python3 train_battle.py --algo mfac", I got an Error "ModuleNotFoundError: No module named 'magent", and "AttributeError: 'GridWorld' object has no attribute 'game'".
I'm a new learner, I don't know how to fixt it, I hope someone can help me to solve this problem.Thanks

FileNotFoundError: [Errno 2] No such file or directory: '/mnt/d/try/mfrl-master/examples/battle_model/build/render'

Hi,when I run python3 train_battle.py --algo mfac, it occurs that:
File "train_battle.py", line 48, in
env.set_render_dir(os.path.join(BASE_DIR, 'examples/battle_model', 'build/render'))
File "/home/lyl/miniconda3/envs/lyl/lib/python3.6/site-packages/magent/gridworld.py", line 423, in set_render_dir
os.mkdir(name)
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/d/try/mfrl-master/examples/battle_model/build/render'

Can you tell me how to solve it?
Thanks.

How you compare performance of algorithms in the battle game?

Recently, I have run the train_battle.py and battle.py. However, I found the performance of one algorithms may vary quite obviously in the battle game. I consider this is quite normal. As the performance of models saved in the 2000th generation may not be the best. Besides, with different random seeds, final performance of models obtained after the self-play process should be different. In this case, I wonder how you evaluate their performance and gain results in Fig.8. How many independent runs you have made for each algorithm in the comparative battles.

how to show battle

I want to take a look at the battle screens I trained. What should I do? I found the index.html page file. How should I use this? Looking forward to your answer

How to calculate MF-Value (eq(10)) in MF-AC/MF-Q

Hi, recently I am trying to reproduce your work and feel a little confused when implementing MF-AC. According to the algorithm at somewhere the MF-Value (10) should be calculated, where it seems it involves many computations to enumerate all possible mean-field actions and their probabilities. I took a look at you MF-AC implementation in battle-game, but it appears to me (please correct me if i am wrong) here the MF-values are substituted with the returns from the sampled trajectory? Could you explain more about how to calculate the MF-value eq(10), for both MF-AC and MF-Q? Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.