Please could all participants that have downloaded the code below and are interested in submitting to the challenge email Zakria Hussain to indicate that you may wish to submit. This does not mean that you must submit but gives the organisers a number on possible participation. Thank you.
There is an API written in Java which is distributed as a .jar file (.class executables only) and some baseline Java code that implements some simple multi-armed bandit problem algorithms. You will need at least Java version 1.5 to run the Java code. You can compile the baseline code like so:javac -classpath challenge1.2.jar applicationtest/*.java applicationtest/simplewindowprovider/*.java
After this you can run ApplicationTest like so:java -classpath .;challenge1.2.jar -Xmx256m applicationtest/ApplicationTest
ORjava -classpath :challenge1.2.jar -Xmx256m applicationtest/ApplicationTest
The Java code contains provider classes and several (bandit) algorithms written using the provider classes. ApplicationTest calls these algorithms and runs them on all 6 tasks. All participants will need to write their algorithm as a provider class. Please look at the provider classes in the sample Java code to understand how to do this. The code contains very simplistic algorithms for bandit problems when arms do not vary over time. However, please note that the challenge is for the case where the rewards for an arm varies over time.
Version 1.1 contains:
Version 1.2 contains
Here is the javadoc1.2 for the challenge1.2.jar package.
The Matlab code is a wrapper for the Java API but does not contain any baseline code like that available for the Java download. The Matlab wrapper calls in the challenge1.2.jar executables and all its functions can be used as in Java. Please read the documentation (preamble) in the matlab file in order to set it up to run correctly.