Additional Libraries

Hi

I want to write a bot in Python, but I need additional open source libraries installed. Is this allowed?

Regards

Hi Rudolph,

This is from last year’s sample bot the same logic should still apply as the engine has not changes in terms of how libraries are used:

Hi Wackmax

Thanks for the info. My question is more towards 3rd party libraries that’s needed. Since this is an AI competition, I am thinking more in the lines of utilizing Tensorflow?

I also see a requirement is that it must run on a Windows 2012 server with a max execution time of 4s. What is the spec on the machine. This affects the architecture of the network.

Regards

Hi Rudolph,

You can use third party libraries so long as they can be installed and configured by your package manager for the language being used. Furthermore the libraries in question have to abide by the competition rules such as not spawning child processes. In the case of TensorFlow, it has been my experience that it requires quite a bit to set up and I cannot guarantee that your bot will run on the server if you use that.

Also, look carefully at the execution time and other rules. The engine will forcefully terminate your bot after 4 seconds, but for your move to be valid your bot has to gracefully finish execution within 2 seconds.

As for the specs of the machine, we will be able to disclose that after the sample bot submissions have closed and we start with the setup of the tournament server.

Hi Wackymax,

Can we request for a library to be installed? Specifically, I’d like to have access to the Python3 libraries numpy (and possibly scipy and scikit-learn). They aren’t part of the standard library, but they’re very common.

On Linux, they’re easy to install with the package manager. On Windows, you have to download a pre-compiled library and then use the package manager to install them. It’s not complicated, but the numpy library is about 120MB for example and is too big to be included with a bot submission.

I’d like to use numpy‑1.12.1+mkl‑cp36‑cp36m‑win_amd64.whl from
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

Hi x0lani,

We can do this for you if it is going to beneficial to all the python contestants. Is it not possible to install using pip?

Unfortunately, not on Windows, which is why a lot of Windows users use Anaconda.

On Windows you have to download the correct binaries for your Python version. I use 64-bit Python 3.6:

  • numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl
  • scikit_learn-0.18.1-cp36-cp36m-win_amd64.whl
  • scipy-0.19.0-cp36-cp36m-win_amd64.whl

Then run

pip install numpy-1.12.1+mkl-cp36-cp36m-win_amd64.whl  scipy-0.19.0-cp36-cp36m-win_amd64.whl scikit_learn-0.18.1-cp36-cp36m-win_amd64.whl

Cool, I will add the libraries for you sometime this weekend. Will post back here when it is done.

Hi x0lani,

The requested packages is installed on the tournament server.

I’ve just noticed that the version that Nuget provides of a library I’m using is over two years out of date, and lacks features that I’ve used in my bot. Can I use the latest version by including it manually?

The library is RapidJSON (C++).

Hi Malman,

As long as your total file upload for your bot is still below the file size limits then I don’t see any issues with including the library manually in your project.

Thanks for the clarification - it is a very small library so it should fit easily.