RoboLeague 1.4 - 説明書

最新版は ここ にある

最終更新日 2002/5/23
訳した日 2002/10/10

Contents

I. 必要条件

II. RoboLeagueのインストール、アップグレード

III. 競技の種類

Division
League

IV. RoboLeagueの使い方

RepositoryとDirectory、Internet Repositories
Divisionを作る
Leagueを作る
Division / Leagueの実行
Distributed Leagueの実行
設定
ディレクトリブラウザ

V. RoboLeagueの組み込みと拡張

VI. 謝辞

I. 必要条件


II. RoboLeagueのインストール、アップグレード

  1. 最新バージョンは こちら
    ソースとかこのファイルとかも入っている

  2. 適当なフォルダに解凍する
    v1.1にするときにはクリーンインストールが必要だが、
    その他は単に上書きすればよい

  3. roboleague.jarをダブルクリックするとか、Dos窓に

    java -jar roboleague.jar

    と打つとかしてRoboLeagueを起動する
    最初に起動したときにrobocode.jarの場所を聞かれる
    インストールしたフォルダのlauncher.propertiesを消せば、また聞いてくれる

    もし動かなかったら作者に メール下さい
    いっしょに直しましょう

III. 競技の種類

RoboLeagueはたくさんのロボットを戦わせて統計を採るためのものである
ロボットは競技(competition)の種類により、異なったルール、条件で戦う
競技に参加するロボットは競技者(competitor)と呼ばれる
競技者はRobocode robot classの最新バージョン、あるいは特定のバージョンである
現状ではdivisionとleagueの2つの競技の種類がある

Division

Divisionでは競技者のセットは固定されている
一度Divisionを開始したら、変更することは出来ない

その競技者のセットでいくつかのシーズンを行う
それぞれのシーズンでいくつかの異なるグルーピングが行われる
それはOpponents per groupingFocused competitor によって決められる

グルーピングはシーズンの中でユニークな、競技者のサブセットである
そのサイズはOpponents per groupingで決められる
もしもグルーピングサイズの値が競技者の数よりも大きい場合には、後者の値が代わりに使われる
Focused competitorを指定しない場合は、可能な全てのグルーピングが行われる
指定した場合には、その競技者を含むものだけが実行されまる

シーズンは全部のグルーピングが終了したら完了
それぞれの競技者について点数が合計され、その大きい順に結果が表示される
Focused competitorがいる場合には、
公平にするために参加したグルーピングの数で割り算される

League

Divisionと同じく、競技はいくつかのシーズンで行われる
しかし、シーズンの間で競技者の組み合わせが変わる
現状では、競技者セットは次の3種類がサポートされている

それぞれの競技者のシリーズ最初の順位は、
直前のシーズンの終わりでの順位となるべく近くなるようになっている
新しい競技者は一番下に加えられるが、シーズン間でドロップアウトがあるので
最初の順位は前の順位よりも小さい値になる

競技者はグルーピングの数を減らすために、いくつかのdivisionに分割される
競技者が配置される前に、昇級と降級が行われる
それぞれのdivisionの境界で、いつくかの競技者が交換される
入れ替わる競技者の数はAdjacent opponentsで指定される

divisionの数はOpponents per divisionAdjacent opponentsの値による
おおまかに言えば、divisionの数 = 競技者の数 / Opponents per division である
しかし、一番最後のdivisionに含まれる競技者の数が、
Adjacent opponentsよりも少ない場合には、一つ上と合併する
つまり、一番下のdivisionに含まれる競技者の数は
最低でAdjacent opponentsの値、 最大でOpponents per division + Adjacent opponents - 1 となる

leagueのシーズンは、すべてのdivisionでシーズンが終了したときに完了する
divisionはシーズンの最終順位を出すために、leagueに構築され直される
これは通常divisionの単純なつなぎ合わせによって行われますが、
最初のシーズンについてはFirst season modeによって設定される

interleavedを用いることによって、安定した結果を得るためのシーズンの数を減らすことが出来る

IV. RoboLeagueの使い方

RepositoryとDirectory、Internet Repositories

repositoryとはRobocodeのrobot classesやjarパッケージを含んだフォルダである
好きなだけrepositoryを作ることができ、
それはRoboLeagueのRepository / Change File Repositoryメニューで選択できる

RoboLeagueはインターネット(例えば Robocode RepositoryBot Exchange )
に接続してロボットをダウンロードすることも出来る
メニューからRepository / Access Internet Repository
を選択して現在のrepositoryへとダウンロードする

directoryはsymbolic な class と version の名前と、
実際のclass と version の名前とを結びつけるために使われる
これは'non-confirming'なclass と version の名前をリネームするために必要である
RoboLeagueと一緒に配布されているものを編集することも、
独自に作ることもできますが、作者は完璧なdirectoryを集めようとしている

directoryはCollections、Robots、Releasesの3つのレベルを持った木構造である
'conforming'な名前を持つロボットはそのパッケージ名をCollection name、
クラス名をRobot name、versionをReleaseとして持っている
多くの古い壊れたロボットがある
私のdirectoryを見てもらえれば分かる
3つのレベル全てを編集することが出来る

Divisionを作る

まず競技の種類を読むこと

そして、メニューからCompetition / New / Divisionを選ぶ

Competitors...ボタンを押すと競技者を選択できる

OKをクリックしたときに新しいdivisionのファイル名を聞かれる

Creating a league

まず競技の種類を読むこと

そしてメニューからCompetition / New / Leagueを選ぶ
divisionを作るときの設定に加えて以下が現れる

division、leagueの実行

division、leagueを作るか読み込むかした後、メニューからCompetition / Runを選ぶと、
シーズン数を聞かれる

シーズンはいつでも中断することができる
またRoboLeagueを終了しても状態は保持される

シーズンの結果はXMLとHTMLのファイルとして保存される
内部的にはXMLで扱われ、XSLTでHTMLに変換される
divisionの結果は1つのファイルにleagueの結果はフォルダに収められる

Competition / Transform resultsを選択すればHTMLファイルを再生成することが出来る

distributed leagueの実行

RoboLeagueはdivisionを使用可能な全てのdivisionエンジンを用いて実行できる
デフォルトではローカルのみのエンジンですが、
好きなだけdivisionサーバーを立ち上げてリモートエンジンとして追加できる

divisionサーバを起動するには、Dos窓を開きRoboLeagueのところへ移動し、

DivisionServer

とする

MyServer1という名前でサーバーを立てるには

start DivisionServer MyServer1

とする
スタートアップ情報が表示され、最後に

DivisionEngine server started and bound to 'MyServer1'.

と表示される

違う名前を指定すれば1台にいくつでもサーバーを立てられる
同じ名前を指定すると、アクセスできないインスタンスが作られる

RMI レジストリサーバを予め実行する必要はない
divisionサーバはデフォルトの1099番ポートを使う
しかし、別々にそれらを実行することも可能である

いくつかのサーバを動かした後、RoboLeagueを実行し、
Settings / Remote engines...を選択し、各サーバをリストに加える
サーバがローカルマシンにあればそのまま指定し、そうでない場合は

//host/name

である

例えば、myserver.dyndns.orgに登録されたMyServer1であれば、

//myserver.dyndns.org/MyServer1

となる
次にleagueを実行したときには全てのサーバーが使われる

設定

ディレクトリブラウザ

メニューからDirectory / Browse robot directoryを選ぶと
ディレクトリブラウザが表示される
ディレクトリはCollection、Robot、Releaseの3つのレベルからなる

3つの異なる色で状態が表示される

またReleaseノードは2色で状態を示す

CollectionとRobotのノードは昇順にソートされている
Releaseは*の例外を除いては降順にソートされている

V. RoboLeagueの組み込みと拡張

RoboLeague APIはv0.9以降安定している

いくつかのサンプルとAPIの使い方については BeanShell documentation を参照のこと

VI. 謝辞

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

Special thanks go to: Mathew Nelson for all his support, Alex, Simon, Michael, Eiivind, Miguel, the rest of the Robocode community and Ted.