EnMAS/EnMAS — pull request #1 by ConnorDoyle (2012-12-03 04:36:43+00:00)
Title: Changes 4 java agents

### Apologies in advance

This is a fairly heavy PR, but these changes all have to come in together. I figured it's better than a bunch of separate PRs with dependencies.

### Synopsis of major changes

1. Removed some confusing type aliases in the `org.enmas.pomdp` package, did some related refactoring. Added a new top-level `Action` class as a result.

1. Added a new `org.enmas.pomdp.State.Implicits` object (and implicit conversions therein) to allow for a more natural State literal syntax within POMDP definitions.
What was previously:

import org.enmas.pomdp.State

val s = State("a" -> 123) + ("b" -> 55.32) + ("c" -> false)

is now more neatly expressed:

import org.enmas.pomdp.State
import State.Implicits._

val s = State("a" -> 123, "b" -> 55.32, "c" -> false)

and the resulting container is still fully type-safe for subsequent access calls.

1. Updated the JavaBroadcastAgent and added a Java SARSA implementation in the included examples.

1. Recompiled all example code, making fixes where necessary for compatibility with the API changes.

1. Improved the specification tests for State.