A - Regional area design Editorial /

Time Limit: 300 sec / Memory Limit: 3072 MB

目次

問題概要

再生可能エネルギーを活用した最新鋭の超小型グリッド(ナノグリッド)を分散配置することで、地域に低炭素の電力を安定供給するプロジェクトが立ち上がった。供給した電力は各地の電力需要地で利用される他、EVでヒトやモノの輸送を行う際にも活用される。

あなたはこのプロジェクトの初期設計者だ。開発部が作成したシミュレータを駆使して、安定した電力供給に加えて円滑に輸送サービスを提供するために適切なナノグリッドの配置を考えて欲しい。仮にあなたが考案した設備配置が環境負荷の低い運転が可能で、広域停電が発生した非常時の際も円滑に電力を供給できるならば、追加の得点が得られるだろう。

なお、初心者向けのサンプルコードを用意しているので、必要に応じて参照して欲しい。

図1 問題Aの解答から採点までの流れ


図2 デザイン決定の例(予算額7000万円の場合)。各ナノグリッドのデザイン(設備構成)に加えて、ナノグリッドの設置場所、EVの初期配置や初期蓄電量も決定する

まず入出力形式について説明する。

入出力形式1

はじめに、コンテスタントはジャッジから必要な情報を入手することができる。その際の入出力形式は以下の通りである。

コンテスタント ジャッジ
\mathrm{query}_1
\mathrm{output}_1
\mathrm{query}_2
\mathrm{output}_2
\vdots \vdots
\mathrm{query}_M
\mathrm{output}_M
\mathrm{"end"}
  • 1 行\mathrm{query}を出力するごとに、対応した情報が標準入力から与えられる。コンテスタントは\mathrm{query}を出力するごとに標準出力をフラッシュする必要があり、また、\mathrm{query}を出力する度に全ての入力を読み切る必要がある。これらに違反した場合は未定義動作となる。
  • 最後のクエリではendを出力する必要がある。ジャッジはendを読み込むことで次の動作に移行する。endを発行しない場合、未定義動作となる。
  • 有効な\mathrm{query}は以下の表の通りである。有効ではない\mathrm{query}を出力した場合はWAとなる。
  • budget
  • temporal
  • score
  • graph
  • demand
  • demand [day] [id]
  • radiation [day] [id]
  • asset
  • asset PV [id]
  • asset FE [id]
  • asset RB [id]
  • asset EVC [id]
  • asset vehicle [id]
  • order [day]
  • shelter
  • end
  • \mathrm{query}に対する出力の内容はクエリ詳細に記載する。


入出力形式2

入出力形式1の後、コンテスタントは以下の形式でナノグリッド設備構成とEV配置を出力する。

まず、コンテスタントは設置するナノグリッドの数N_\mathrm{grid}を出力する。

\begin{aligned}N_\mathrm{grid}\end{aligned}

次に、以下の形式でナノグリッドの設備情報を出力する。

\begin{aligned}& \mathrm{grid\_info}_1 \\& \vdots \\& \mathrm{grid\_info}_{N_\mathrm{grid}} \\\end{aligned}
  • コンテスタントは後述する\mathrm{grid\_info}の形式に従って、N_\mathrm{grid}個のナノグリッドを配置する。
  • あらかじめ設定された電力需要地以外に設置されるナノグリッドの電力需要は常に0である。
  • 各ナノグリッドについて、PV 設置量に必要な土地面積が各頂点の取得可能面積量を上回った場合、WAである。
  • 同じ頂点に複数回ナノグリッドを設置しようとした場合、最後の設置が有効となる。
  • ナノグリッドには設置順にIDが振られ、以降このIDで参照される。このIDは電力需要地のIDとは異なることに注意せよ。

次に、コンテスタントは配置するEVの台数N_\mathrm{EV}を出力する。

\begin{aligned}N_\mathrm{EV}\end{aligned}

次に、以下の形式で配置するEVの情報を出力する。

\begin{aligned}& \mathrm{EV\_info}_1 \\& \vdots \\& \mathrm{EV\_info}_{N_\mathrm{EV}}\end{aligned}
  • コンテスタントは後述する\mathrm{EV\_info}の形式に従って、N_\mathrm{EV}個のEVを配置する。
  • EVには設置順にIDが振られ、以降このIDで参照される。

最後に、コンテスタントは以下の形で実行形式を指定する。

\begin{aligned}\mathrm{command} & & \mathrm{day} & & \text{opt}_1\end{aligned}
  • 1つめの引数は実行形態を指定する文字列である。有効な文字列は以下の通り。
  • test: 指定したナノグリッド配置、EV配置で\mathrm{day}で指定された日付のテストを実行し、その日のスコアに関する情報を標準入力に返却する。この時返却されるスコアは以下の形式である:

    S_\mathrm{trans}\quad S_\mathrm{ele}\quad S_\mathrm{env}

    返却されたスコアは必ず読み取ること。さもなければWAである。また、このテスト実行に係わるCPU時間も実行時間制限に含まれることに注意せよ。
  • submit: 指定したナノグリッド配置、EV配置を解答として提出する。\mathrm{day}は無視される。submit 出力後、コンテスタントのプロセスはただちに終了しなければならない。終了しない場合、結果は未定義である。
  • 2 つめの引数はテストを実行する日付を指定する。日付は第 1 日目から第N_\mathrm{day} 目まで有効であり、それ以外の日付を指定した場合はWAとなる。
  • 3 つめの引数は電力調整に専念するEVの数を指定する引数である。

\mathrm{grid\_info} 詳細

入出力形式
\begin{aligned}& x^\mathrm{grid}_\mathrm{pos} & & \mathrm{Chg}^\mathrm{grid}_\mathrm{init} \\& \mathrm{type}^\mathrm{grid}_\mathrm{PV} & & A^\mathrm{grid}_\mathrm{PV} \\& \mathrm{type}^\mathrm{grid}_\mathrm{FE} \\& \mathrm{type}^\mathrm{grid}_\mathrm{RB} & & A^\mathrm{grid}_\mathrm{RB} \\& \mathrm{type}^\mathrm{grid}_\mathrm{EVC}\end{aligned}
説明
  • 1 行目は、ナノグリッドが頂点x^\mathrm{grid}_\mathrm{pos}に位置し、開始時の蓄電量が\mathrm{Chg}^\mathrm{grid}_\mathrm{init}であることを示す。
  • 続く4行は導入する設備の種類と量を指定する。PV、FE、RB、EVCの各設備は各々1種類のみ導入可能である。
  • 1行目は PV 設備の構成を表す。\mathrm{type}^\mathrm{grid}_\mathrm{PV}は種類、A^\mathrm{grid}_\mathrm{PV}発電容量で見たPV導入量を表す。
  • 2行目は自家発電機の構成を表す。\mathrm{type}^\mathrm{grid}_\mathrm{FE}は種類を表す。
  • 3行目は蓄電池の構成を表す。\mathrm{type}^\mathrm{grid}_\mathrm{RB}は種類、A^\mathrm{grid}_\mathrm{RB}は導入量を表す。
  • 4行目はEVCの種類を表す。\mathrm{type}^\mathrm{grid}_\mathrm{EVC}は種類を表す。
  • PV導入に関しては、次の制約を満たす必要がある:

    A^\mathrm{PV} A^\mathrm{grid}_\mathrm{PV} \leq A_{x^\mathrm{grid}_\mathrm{pos}}

    ここで、A^\mathrm{PV}は設置しようとしているPVの発電容量あたり要求面積、A^\mathrm{grid}_\mathrm{PV}はPVの導入量、A_{x^\mathrm{grid}_\mathrm{pos}}はナノグリッドを設置しようとしている頂点のPV導入可能面積である。

\mathrm{EV\_info} 詳細

入出力形式
\begin{aligned}& x^\mathrm{EV}_\mathrm{pos} & & \mathrm{Chg}^\mathrm{EV}_\mathrm{init} & & \mathrm{type}_\mathrm{EV}\end{aligned}
説明
  • EVがt = 0で頂点x^\mathrm{EV}_\mathrm{pos}に配置され、開始時の蓄電量が\mathrm{Chg}^\mathrm{EV}_\mathrm{init}であり、製品\mathrm{type}_\mathrm{EV}であることを示す。
  • 頂点x^\mathrm{EV}_\mathrm{pos}は予めナノグリッドが設置された頂点である必要がある。

問題詳細


地図情報

地図情報は単純無向グラフとして与えられる。車両は全てこのグラフの辺の上を移動する。各頂点は 2 次元平面上に配置され、同時に人口と太陽光発電設備の設置容量が指定されている。人口が多い頂点ほど、運搬注文の発生確率が高くなる。また、頂点のうちいくつかには電力需要が設定されている。


アセット情報

一つのナノグリッドは太陽光発電設備(PV)、自家発電機(FE)、蓄電池(RB)、とEV充放電装置(EVC) によって構成される。ナノグリッドを設置する際には、これらの設備に関する構成も指定する必要がある。

各設備の特徴は以下の通り:

  • PV: 日射量に比例する量の発電を行う。日射量は各頂点毎に与えられ、時間区間毎に変化する。一度設置してしまえば発電のための追加のコストは必要としないが、各頂点毎の設置容量を超えて設置しようとした場合はWA(Wrong Answer)となる。すなわち、PV設置のためには以下の制約を満たす必要がある:

    A^\mathrm{PV} A^\mathrm{grid}_\mathrm{PV} \leq A_i

    ここで、A^\mathrm{PV}は設置しようとしているPVの発電容量あたり要求面積、A^\mathrm{grid}_\mathrm{PV}はPVの導入量、A_iはナノグリッドを設置しようとしている頂点のPV導入可能面積である。
  • FE: 燃料を消費することで発電を行う。発電は不足した電力を補うために行われる。出力あたりの設置コストは安価で、天候に依存しない発電が可能だが、発電のためには追加のコストが要求される。
  • RB: 発電された電力のうち、余剰分を蓄積し、不足時に放出する。シミュレーション時、1日を開始する際の初期蓄電量は任意に指定出来る。
  • EVC: PV・FE・RB と負荷を相互に接続し、また、車両等の外部機器との電力入出力を行う。

これらの設備による発電量と EV による充放電を総合し、電力の不足が生じた場合、電力は通常の電気系統からの購入によって賄われる。

また、導入する車両についても、カタログが与えられる。詳細は車両アセット情報に参照せよ。

これらの設備・車両の導入には初期費用が必要である。初期費用の基準額は入出力形式1の中で取得可能である。初期費用が基準額を超えた場合、スコアにペナルティが与えられる。


電力需要

地域には電力需要を持つ地点が存在している。電力需要地の位置、および電力需要の予測値はテストケース開始時に取得可能である。

電力供給

電力の供給は主にPVによって行われ、EV の充放電と電力需要との差分が RB に集約される。FEは電力不足時に稼働し、不足分を補う。FEの最大出力以上の電力不足が生じた場合、系統からの電力購入が行われる。

  • PV 発電量 : PV 発電量は当該時間区間での日射量と PV 設備容量の積で与えられる。PV 設備容量の与え方については入出力形式2を参照せよ。
  • FE 発電量 : FE は PV 発電量とEVへの充電量、EVからの放電量、電力需要の総和がその時刻での RB 蓄電量を上回った際、不足分を補う分だけ稼働する。不足分がFEの最大出力を上回る場合、上回った分だけ系統から電力を購入する。
  • RB 充放電量 : RB は短期的な電力需給のインバランスを補償するように動作する。各時刻において、PV 発電量、EV 充放電量の和と電力需要との差が、RB 蓄電量に積算されていく。すなわち、PV 発電量と EV からナノグリッドへの充電量の和が、電力需要とナノグリッドから EV への充電量の和を上回っていた場合、RB 蓄電量が増加する。逆の場合は減少する。RB蓄電量が上限に達していて、かつ、ナノグリッド内の電力供給が過剰であった場合、余剰の電力は自動的に捨てられる。

下記は日々の運用でジャッジが実行する内容であり、コンテスタントは直接指示や管理を行わないが、設備配置の考慮や日々運用の理解などのために記載する。

#### 運搬依頼と車両 ##### 運搬依頼 運搬依頼に基づき、EVは運搬物を出発地点でピックアップし目的地点まで運ぶ。運搬依頼の発生確率は、(1)空間的確率分布は各頂点の人口に比例し、(2)時間的確率分布はPoisson分布に従う(詳細は入出力1"運搬依頼情報"を参照)。依頼はオンラインで発生し、各運搬依頼は以下の内部状態を持つ。ここで、全ての変数は整数である。
  • 注文ID \mathrm{id}: 全ての注文には発生した順番にIDが割り振られる。同じ時刻に発生した注文についてのIDの割り振り順序は規定されない。
  • 発生時刻 \mathrm{ordered}: 注文が発生した時刻。
  • 注文発生地点 p^\mathrm{order}: 運搬注文に対し、pickup を行うべき頂点。
  • 注文目的地点 d^\mathrm{order}: pickup した注文を送り届けるべき頂点。到着後、積み下ろしは自動で行われる。
  • 状態 \mathrm{state}: 運搬注文の状態。0は運搬注文が発生した後、まだどのEVにも積み込まれていないことを示し、1は積み込まれた後、まだ目的地には到着していないことを示す。
##### 車両 ジャッジは各時刻で以下のコマンドを発行することで複数のEVを操作し、ナノグリッド間の電力バランス調整や運搬を行う。
  • **内部状態**: 各車両は以下の内部状態を持つ。
    • 蓄電量 \mathrm{Chg}^\mathrm{EV}(t)
    • 位置 (u^V, v^V, d^V) : 車両が辺(u^V, v^V)上に存在し、その現在位置は頂点u^Vから距離d^Vであることを示す。
  • **動作命令**
    • stay: 移動せずにその場にとどまる。この場合、車両の電力は消費されず、環境負荷も発生しない。
    • move w: 頂点wに向かって距離1だけ移動する。
    • pickup a: ID がaである注文に関する作業を行う。
    • charge_from_grid d: 現在位置するナノグリッドから、車両へdだけ充電する。
    • charge_to_grid d: 車両から、現在位置するナノグリッドへdだけ充電する。
    • 以上の 2 項目による充電・放電の総量はターン毎、グリッド毎に\Delta_\mathrm{EV}に集約され、評価される。詳細は[電力需給詳細](#電力需給詳細)を参照せよ。

採点方法

最終的なスコアSは以下の式で決定される:

S = \sum_{i = 1}^{N_\mathrm{day}}w_{\mathrm{day}, i}S_i + w_\mathrm{acc}S_\mathrm{acc} - \alpha_\mathrm{cost}\max(0, C_\mathrm{total} - C_\mathrm{init})

ここで、S_iは第i日目のスコア、S_\mathrm{acc}は災害対応スコア、w_{\mathrm{day}, i}は各S_iに対する重み付け係数、w_\mathrm{acc}は災害対応スコアの重みづけ係数、C_\mathrm{total}は設置した設備全体のコスト、\alpha_\mathrm{cost}はスコア換算のための係数、C_\mathrm{init}は設備配置のための予算額、である。S_iは以下の計算式で決定される。

S_i = w_\mathrm{trans}S_\mathrm{trans} + w_\mathrm{ele}S_\mathrm{ele} + w_\mathrm{env}S_\mathrm{env}

ここで、S_\mathrm{trans}は輸送スコア、S_\mathrm{ele}は電力スコア、S_\mathrm{env}は環境スコアである。詳細は以下の記述を参照せよ。w_\mathrm{trans}w_\mathrm{ele}w_\mathrm{env}は各スコアの重みづけ係数である。それぞれのスコアは、該当する日のパラメータによるテストで求められる。

輸送スコア S_\mathrm{trans}

S_\mathrm{trans} = \sum_{i \in \mathcal O^\mathrm{trans}} \max\left(0, \alpha^\mathrm{trans}_\mathrm{fee}\mathrm{dist}_i - \alpha^\mathrm{trans}_\mathrm{penalty}(T_{\mathrm{wait}, i} - T_i)^2\right)

ただし、\mathcal O^\mathrm{trans}はテストケース終了時までに完了した運搬依頼のIDの集合、T_\mathrm{wait, i}は運搬依頼のID=iが発生してから目的地に到着するまでの時間、T_iは運搬依頼のID=iの発生地点から目的地点までの最短経路長から計算した最短所要時間である。\alpha^\mathrm{trans}_\mathrm{fee}は運賃収入に対応するパラメータであり、\alpha^\mathrm{trans}_\mathrm{penalty}は運搬依頼の遅れに対するペナルティに対応する。

電力スコア S_\mathrm{ele}

S_\mathrm{ele} = \alpha^\mathrm{ele}C^\mathrm{balance} - \alpha^\mathrm{ele}_\mathrm{FE}\sum_{t = 0}^{T_\mathrm{max}}\sum_{i = 1}^{N_\mathrm{grid}}L^\mathrm{FE}_{i, t} - \alpha^\mathrm{ele}_\mathrm{buy}\sum_{t = 0}^{T_\mathrm{max}}\sum_{i = 1}^{N_\mathrm{grid}}L^\mathrm{buy}_{i, t}

C^\mathrm{balance} = \sum_{i = 1}^{N_\mathrm{EV}} C^{\mathrm{EV}_i}_{t = T_\mathrm{max}} + \sum_{i = 1}^{N_\mathrm{grid}} C^{\mathrm{grid}_i}_{t = T_\mathrm{max}} - \sum_{i = 1}^{N_\mathrm{grid}} C^{\mathrm{grid}_i}_{t = 0} - \sum_{i = 1}^{N_\mathrm{EV}} C^{\mathrm{EV}_i}_{t = 0} - \sum_{i = 1}^{N_\mathrm{EV}}\Delta^\mathrm{EV}_{\mathrm{move}, i}\mathrm{ret}_i

ただし、第1項のC^\mathrm{balance}は全体の電力収支に対応し、t = T_\mathrm{max}時点における全EV及び全ナノグリッドの蓄電残量の総和から、初期蓄電量の総和とEVが初期値点へ帰投するために必要な電力量の総和を引いたものである。L^\mathrm{FE}_{i, t}L^\mathrm{buy}_{i, t}はそれぞれ、ナノグリッドiが時刻tでFEによって発電した電力と系統から購入した電力である。\alpha^\mathrm{ele}\alpha^\mathrm{ele}_\mathrm{FE}および\alpha^\mathrm{ele}_\mathrm{buy}は電力スコア換算のための係数である。

電力需要地にナノグリッドを設置しなかった場合、ナノグリッドが設置されなかった電力需要地で消費された電力は全て系統から購入したものとして扱われる。

環境スコア S_\mathrm{env}

S_\mathrm{env} = - \alpha^\mathrm{env}_\mathrm{fuel} \sum_{t = 0}^{T_\mathrm{max}} \sum_{i = 1}^{N_\mathrm{grid}} L^\mathrm{FE}_{i, t} - \alpha^\mathrm{env}_\mathrm{buy} \sum_{t = 0}^{T_\mathrm{max}} \sum_{i = 1}^{N_\mathrm{grid}} L^\mathrm{buy}_{i, t}

ただし、\alpha^\mathrm{env}_\mathrm{fuel}および\alpha^\mathrm{env}_\mathrm{buy}は環境負荷換算のための係数である。

災害対応スコア S_\mathrm{acc}

S_\mathrm{acc} = \alpha^\mathrm{acc}\mathrm{Day}

ただし、\mathrm{Day}は災害時における連続無停電日数であり、最大でN_\mathrm{acc}となる。\alpha^\mathrm{acc}はスコア換算のための係数である。災害対応スコアの計算はN_\mathrm{day}日分のテストによって上記の輸送スコア、電力スコア、環境スコアの計算を行った後、改めて開始される。詳細は以下の折り畳みを参照せよ。

災害対応スコアは以下のようにして計算される。 1. テストケース内の1日が一様ランダムで選択され、コンテスタントの指定した初期蓄電量からテストが開始される。 2. \{1, \cdots , T^\mathrm{max}\}から一様ランダムに1点が選択され、その時刻が災害発生時刻t_\mathrm{acc}となり、1.で実行したテスト中での時刻t_\mathrm{acc}における蓄電量が記録される。 3. 新たにテストが開始される。初期蓄電量は2.で記録した蓄電量となり、以降、系統からの電力供給を受けずに無停電動作を行う限り、また先述の最大連続無停電日数の範囲でテストが続行される。この間、2日目以降の初期蓄電量は前日の最終蓄電量が使用される。また、避難所の位置に電力需要地が出現する。詳細は[入出力形式1](#入出力形式1)の避難所情報を参照せよ。加えて、これらのテストの間、運搬注文は発生しない。 4. 上記の災害対応テストは最大N_\mathrm{acc}日間で終了する。

最終順位決定方法

システムテストでは、コンテスト期間中とは異なる400個のテストケースを用いて、その合計点で最終順位を決定する。各コンテスタントでシステムテストの対象となるコードは"ACを獲得した最後の提出"となる。また、TLEもしくはWAとなったテストケースが存在した場合、そのケースの得点は0点になる。テストケースの詳細な内訳は下記表を参照せよ。
※generatorの配布予定は無し。

(1)ツールキット公開済3種+未公開3種(いずれも頂点数10000以下)
(2)実データから日射量多め×1,少なめ×1,乱択×2の合計4種
(3)運搬数の合計の期待値は地図データと一対一対応とする
(4)但し、期間中順位用のテストケースと比較して、計算時間・メモリ消費量が極端に大きくなるケースは除外する
(5)地図6種 × 日射量4種 × 予算額3種 × 他パラメタパターン4種 = 288ケース
(6)将来的な技術動向や政策動向を考慮し、特定のアセットや条件などが有利になるケースを含むように選択
(例: 系統から電力を購入することによるペナルティ(\alpha^\mathrm{ele}_\mathrm{buy}\alpha^\mathrm{env}_\mathrm{buy})が大きいケース、w_\mathrm{acc}, w_\mathrm{trans}, w_\mathrm{ele}, w_\mathrm{env}のいずれか1つが小さくなるケース)

クエリ詳細

予算情報 (budget)

入出力形式
コンテスタント ジャッジ
\mathrm{"budget"}
C_\mathrm{init}
説明
  • C_\mathrm{init}はテストケース毎に指定される予算総額である。

時間情報 (temporal)

入出力形式
コンテスタント ジャッジ
\mathrm{"temporal"}
T_\mathrm{max} \quad T_\mathrm{last} \quad N_\mathrm{div} \quad N_\mathrm{day} \quad N_\mathrm{acc}
説明
  • T_\mathrm{max}は 1 日あたりのステップ数、T_\mathrm{last}は 1 日の中で運搬依頼の注文が発生する最終ステップである。
  • T_\mathrm{max}は均等にN_\mathrm{div}個の区間に分割される。日射量予測 (radiation [day] [id])、電力需要情報詳細 (demand [day] [id])、運搬依頼情報 (order [day])は、この時間区間のそれぞれで一定の値を取る。
  • N_\mathrm{day}はテストケースが何日分のデータで構成されるかを示している。
  • N_\mathrm{acc}は災害対応スコア計算時のテストケースが何日分のデータで構成されるかを示している。

スコア情報 (score)

入出力形式
コンテスタント ジャッジ
\mathrm{"score"}
\begin{aligned}& \alpha_\mathrm{cost} \\& w_{\mathrm{day}, 1} & & \cdots & & w_{\mathrm{day}, N_\mathrm{day}} \\& w_\mathrm{trans} & & w_\mathrm{ele} & & w_\mathrm{env} & & w_\mathrm{acc} \\& \alpha^\mathrm{trans}_\mathrm{fee} & & \alpha^\mathrm{trans}_\mathrm{penalty} \\& \alpha^\mathrm{ele} & & \alpha^\mathrm{ele}_\mathrm{FE} & & \alpha^\mathrm{ele}_\mathrm{buy} \\& \alpha^\mathrm{env}_\mathrm{fuel} & & \alpha^\mathrm{env}_\mathrm{buy} \\& \alpha^\mathrm{acc} \\\end{aligned}
説明
  • 7行の間にスコア計算に用いられる係数が列挙される。これらの係数がどのように用いられるのか、詳細な計算式については採点方法を参照せよ。

グラフ情報 (graph)

入出力形式
コンテスタント ジャッジ
\mathrm{"graph"}
\begin{aligned}& V & & E \\ & x_1 & & y_1 & & p_1 & & A_1 & & l_1 \\ & \vdots \\ & x_V & & y_V & & p_V & & A_V & & l_V \\ & u_1 & & v_1 & & d_1 \\ & \vdots \\ & u_E & & v_E & & d_E \\\end{aligned}
説明
  • 1 行目のVは頂点数、Eは辺の数。
  • 続くV行でグラフの頂点が与えられる。V行のうち、i行目は頂点iが座標(x_i, y_i)に存在して、人口p_iが存在し、PV導入可能面積がA_iであり、取得面積当たり費用がl_iであることを示す。また、i番目の頂点は頂点番号iで参照される。
  • 続くE行で、グラフの辺が与えられる。E行のうち、i行目は頂点u_iと頂点v_iの間に距離d_iの辺が存在することを示す。

電力需要情報 (demand)

入出力形式
コンテスタント ジャッジ
\mathrm{"demand"}
N_\mathrm{demand}
説明
  • N_\mathrm{demand}は電力需要地の数である。

電力需要情報詳細 (demand [day] [id])

入出力形式
v
コンテスタント ジャッジ
\mathrm{"demand"}\quad d \quad i
\begin{aligned}& x & & \sigma_D^2 \\& D^{\rm predict}_1 & & \cdots & & D^{\rm predict}_{N_{\rm div}} \\\end{aligned}
説明
  • d日目におけるiで指定した電力需要地の電力需要予測を返す。

  • 1 行目のxは電力需要地が存在する頂点の頂点番号であり、続く\sigma_D^2は電力需要予測に対し、ステップごとに生じる誤差の分散である。即ち、電力需要予測に対してステップごとに生じる誤差は平均0、分散\sigma_D^2の正規分布に従う。

  • 続く1行に時間区間毎の予測電力需要の値が与えられる。 N_{\rm div}個の数値のうち、i番目の数値D^\mathrm{predict}_iは、時間区間iでの予測電力需要の値を表す。

日射量予測 (radiation [day] [id])

入出力形式
コンテスタント ジャッジ
\mathrm{"radiation"}\quad d \quad i
\begin{aligned}& R^{\rm predict}_1 & & \cdots & & R^{\rm predict}_{N_{\rm div}} \\\end{aligned}
説明
  • [day]日目における頂点[id]の日照量の予測値を返す。
  • i番目の数値R^\mathrm{predict}_iは、時間区間iでの予測日照量の値を表す。予測日射量の精度に関して、1日の積算量については概ね正確であるが、各ステップにおける精度は保証されない。

アセット情報 (asset)

入出力形式
コンテスタント ジャッジ
\mathrm{"asset"}
\begin{aligned}& N_\mathrm{PV} \\& N_\mathrm{FE} \\& N_\mathrm{RB} \\& N_\mathrm{EVC} \\& N_V \\\end{aligned}
説明
  • 1 行目のN_\mathrm{PV}は PV 設備の製品数である。
  • 続く 1 行のN_\mathrm{FE}は自家発電装置の製品数である。
  • 続く 1 行のN_\mathrm{RB}は蓄電池の製品数である。
  • 続く 1 行のN_\mathrm{EVC}は EVC の製品数である。
  • 続く 1 行のN_Vは車両の製品数である。

PVアセット情報 (asset PV [pv_id])

入出力形式
コンテスタント ジャッジ
\mathrm{"asset\ PV"}\quad i
\begin{aligned}& A^\mathrm{PV} & & C^\mathrm{PV}_{\mathrm{init}} \\\end{aligned}
説明
  • 製品iの PV 設備に関する情報である。A^\mathrm{PV}は発電容量あたりの要求面積、C^\mathrm{PV}_\mathrm{init}は発電容量あたりのコストである。
  • PVに対して有効なiは1以上N_\mathrm{PV}以下である。

FEアセット情報 (asset FE [fe_id])

入出力形式
コンテスタント ジャッジ
\mathrm{"asset\ FE"}\quad i
\begin{aligned}& P^\mathrm{FE}_\mathrm{max} & & C^\mathrm{FE}_\mathrm{init}\\\end{aligned}
説明
  • 製品iの自家発電装置に関する情報である。P^\mathrm{FE}_\mathrm{max}は最大出力、C^\mathrm{FE}_\mathrm{init}は一機あたりの初期コストである。
  • FEに対して有効なiは1以上N_\mathrm{FE}以下である。
  • P^\mathrm{FE}_\mathrm{max} = C^\mathrm{FE}_\mathrm{init} = 0の製品が必ず含まれている。FEを配置することを望まない場合はこの製品を選択すること。

RBアセット情報 (asset RB [rb_id])

入出力形式
コンテスタント ジャッジ
\mathrm{"asset\ RB"}\quad i
\begin{aligned} & \mathrm{Cap}^\mathrm{RB} & & C^\mathrm{RB}_\mathrm{init} \\\end{aligned}
説明
  • 製品iの蓄電池に関する情報である。\mathrm{Cap}^\mathrm{RB} は蓄電池容量、C^\mathrm{RB}_\mathrm{init}は一機あたりの初期コストである。
  • RBに対して有効なiは1以上N_\mathrm{RB}以下である。

EVCアセット情報 (asset EVC [EVC_id])

入出力形式
コンテスタント ジャッジ
\mathrm{"asset\ EVC"}\quad i
\begin{aligned}& P^\mathrm{EVC}_\mathrm{in} & & P^\mathrm{EVC}_\mathrm{out} & & C^\mathrm{EVC}_\mathrm{init} \\\end{aligned}
説明
  • 製品iのEVCに関する情報である。P^\mathrm{EVC}_{\mathrm{in}}は最大入力電力、P^\mathrm{EVC}_{\mathrm{out}}は最大出力電力、C^\mathrm{EVC}_{\mathrm{init}}は初期コストである。
  • EVCに対して有効なiは1以上N_\mathrm{EVC}以下である。
  • P^\mathrm{EVC}_\mathrm{in} = P^\mathrm{EVC}_\mathrm{out} = C^\mathrm{EVC}_\mathrm{init} = 0の製品が必ず含まれている。EVCを配置することを望まない場合はこの製品を選択すること。

車両アセット情報 (asset vehicle [v_id])

入出力形式
コンテスタント ジャッジ
\mathrm{"asset\ vehicle"}\quad i
\begin{aligned}& \mathrm{Cap}^V_\mathrm{ele} & & \mathrm{Cap}^V_\mathrm{pop} \\& P^V_{\mathrm{charge}} & & P^V_{\mathrm{discharge}} & & C^V_{\mathrm{init}} & & \Delta^V_{\mathrm{move}} \\\end{aligned}
説明
  • 製品iの車両に関する情報である。
  • 1 行目のうち、\mathrm{Cap}^V_{\mathrm{ele}}は蓄電池容量、\mathrm{Cap}^V_{\mathrm{pop}}は車両の定員である。
  • 2 行目のうち、P^V_\mathrm{charge}は充電速度、P^V_{\mathrm{discharge}}は放電速度、C^V_{\mathrm{init}}は 1 台あたりの費用、\Delta^V_{\mathrm{move}}は移動時の消費電力である。
  • 車両アセット情報に対して有効なiは1以上N_\mathrm{V}以下である。

運搬依頼情報 (order [day])

入出力形式
コンテスタント ジャッジ
\mathrm{"order"}\quad d
\begin{aligned}& o_1 & & \cdots & & o_{N_\mathrm{div}} \\\end{aligned}
説明
  • d日目の運搬依頼の発生頻度に関する情報である。
  • i個めの引数o_iは時間区間iの間に発生する運搬依頼の期待値である。

避難所情報 (shelter)

入出力形式
コンテスタント ジャッジ
\mathrm{"shelter"}
\begin{aligned}& N_\mathrm{shelter} \\& x^\mathrm{shelter}_1 & & p^\mathrm{shelter}_1 \\& \vdots \\& x^\mathrm{shelter}_{N_\mathrm{shelter}} & & p^\mathrm{shelter}_{N_\mathrm{shelter}} \\& D^\mathrm{shelter}_1 & & \cdots & & D^\mathrm{shelter}_{N_\mathrm{div}} \\\end{aligned}
説明
  • 避難所に関する情報である。
  • 1行目のN_\mathrm{shelter}は避難所の数を示す。
  • 続くN_\mathrm{shelter}行は避難所の設置位置と想定収容人数である。i行目はi番目の避難所が頂点x_iに位置し、想定収容人数がp_iであることを示す。
  • 続く1行は、災害発生時に避難所で発生する基準電力需要である。i番目の数字D^\mathrm{shelter}_iは、時間区間iにおける基準電力需要がD^\mathrm{shelter}_iであることを示す。時間区間iにおける避難所jの予測電力需要D^\mathrm{shelter}_{i, j}は以下の式で表される(端数切り捨て) :
\begin{aligned}D^\mathrm{shelter}_{i, j} = p^\mathrm{shelter}_j  D^\mathrm{shelter}_i / 100\end{aligned}
  • 電力需要地と避難所が同じ頂点に位置する場合、災害対応スコア計算時には、電力需要地としての電力需要と避難所としての電力需要を合算したものが該当地点の電力需要となる。

入出力制約

入力で与えられる数値のうち小数と記載されているものは小数で与えられ、その他のものは整数で与えられる。

入出力形式1

  • 40 \leq w_{\mathrm{day}, i} \leq 1000
  • 1000 \leq \alpha_\mathrm{cost} \leq 2000
  • 10000 \leq C_\mathrm{init} \leq 800000
  • 0 \leq C_\mathrm{total} \leq 1000000000
  • 0 \leq w_\mathrm{trans} \leq 1 [小数]
  • 0 \leq w_\mathrm{ele} \leq 1 [小数]
  • 0 \leq w_\mathrm{env} \leq 1 [小数]
  • 0 \leq w_\mathrm{acc} \leq 1 [小数]
  • 15 \leq \alpha^\mathrm{trans}_\mathrm{fee} \leq 20 [小数]
  • 0.005 \leq \alpha^\mathrm{trans}_\mathrm{penalty} \leq 0.2 [小数]
  • 0.003 \leq \alpha^\mathrm{ele} \leq 0.015 [小数]
  • 0.003 \leq \alpha^\mathrm{ele}_\mathrm{FE} \leq 0.01 [小数]
  • 0.004 \leq \alpha^\mathrm{ele}_\mathrm{buy} \leq 0.02 [小数]
  • 20 \leq \Delta^\mathrm{EV}_{\mathrm{move}, i} \leq 300
  • 0.00025 \leq \alpha^\mathrm{env}_\mathrm{fuel} \leq 0.0012 [小数]
  • 0.0005 \leq \alpha^\mathrm{env}_\mathrm{buy} \leq 0.0025 [小数]
  • 1000000 \leq \alpha^\mathrm{acc} \leq 8000000
  • 3000 \leq T_\mathrm{max} \leq 10000
  • 2700 \leq T_\mathrm{last} \leq 9000
  • 15 \leq N_\mathrm{div} \leq 30
  • 2 \leq N_\mathrm{day} \leq 16
  • 1 \leq N_\mathrm{acc} \leq 8
  • 5000 \leq V \leq 20000
  • 5000 \leq E \leq 40000
  • -60000 \leq x_i \leq 60000 (1 \leq i \leq V)
  • -60000 \leq y_i \leq 60000 (1 \leq i \leq V)
  • 0 \leq p_i \leq 2000 (1 \leq i \leq V)
  • 1 \leq A_i \leq 5000 (1 \leq i \leq V)
  • 5 \leq l_i \leq 300 (1 \leq i \leq V)
  • 1 \leq u_i \leq V (1 \leq i \leq E)
  • 1 \leq v_i \leq V (1 \leq i \leq E)
  • 1 \leq d_i \leq 300 (1 \leq i \leq E)
  • 0 \leq N_\mathrm{demand} \leq 12
  • 10 \leq \sigma_D^2 \leq 30
  • 0 \leq D^{\rm predict}_i \leq 200 (1 \leq i \leq N_\mathrm{div})
  • 0 \leq R^{\rm predict}_i \leq 10 (1 \leq i \leq N_\mathrm{div}) [小数]
  • 2 \leq N_\mathrm{PV} \leq 3
  • 2 \leq N_\mathrm{FE} \leq 4
  • 2 \leq N_\mathrm{RB} \leq 3
  • 2 \leq N_\mathrm{EVC} \leq 5
  • 3 \leq N_V \leq 4
  • 10 \leq A^\mathrm{PV} \leq 15
  • 50 \leq C^\mathrm{PV}_{\mathrm{init}} \leq 120
  • 0 \leq P^\mathrm{FE}_\mathrm{max} \leq 500
  • 0 \leq C^\mathrm{FE}_\mathrm{init} \leq 4000
  • 8000 \leq \mathrm{Cap}^\mathrm{RB} \leq 100000
  • 250 \leq C^\mathrm{RB}_\mathrm{init} \leq 1000
  • 0 \leq P^\mathrm{EVC}_\mathrm{in} \leq 500
  • 0 \leq P^\mathrm{EVC}_\mathrm{out} \leq 500
  • 0 \leq C^\mathrm{EVC}_\mathrm{init} \leq 2000
  • 40000 \leq \mathrm{Cap}^V_\mathrm{ele} \leq 900000
  • 2 \leq \mathrm{Cap}^V_\mathrm{pop} \leq 50
  • 300 \leq P^V_{\mathrm{charge}} \leq 1200
  • 300 \leq P^V_{\mathrm{discharge}} \leq 1200
  • 1500 \leq C^V_{\mathrm{init}} \leq 8000
  • 20 \leq \Delta^V_{\mathrm{move}} \leq 300
  • 0 \leq o_i \leq 1000 (1 \leq i \leq N_\mathrm{div})
  • 4 \leq N_\mathrm{shelter} \leq 16
  • 1 \leq x^\mathrm{shelter}_i \leq V (1 \leq i \leq N_\mathrm{shelter})
  • 20 \leq p^\mathrm{shelter}_i \leq 800 (1 \leq i \leq N_\mathrm{shelter})
  • 0 \leq D^\mathrm{shelter}_i \leq 12 (1 \leq i \leq N_\mathrm{div})

入出力形式2

  • S_\mathrm{trans} [小数]
  • S_\mathrm{ele} [小数]
  • S_\mathrm{env} [小数]
  • 1 \leq x^\mathrm{grid}_\mathrm{pos} \leq V
  • 0 \leq \mathrm{Chg}^\mathrm{grid}_\mathrm{init} \leq \mathrm{Cap}^\mathrm{RB} A^\mathrm{grid}_\mathrm{RB}
    • \mathrm{Cap}^\mathrm{RB} は導入したRBの蓄電池容量、A^\mathrm{grid}_\mathrm{RB}はRBの導入量である。
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{PV} \leq N_\mathrm{PV}
  • 0 \leq A^\mathrm{grid}_\mathrm{PV} \leq 500
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{FE} \leq N_\mathrm{FE}
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{RB} \leq N_\mathrm{RB}
  • 0 \leq A^\mathrm{grid}_\mathrm{RB} \leq 10000
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{EVC} \leq N_\mathrm{EVC}
  • 1 \leq x^\mathrm{EV}_\mathrm{pos} \leq V
  • 1 \leq \mathrm{Chg}^\mathrm{EV}_\mathrm{init} \leq \mathrm{Cap}^V_\mathrm{ele}
    • \mathrm{Cap}^V_\mathrm{ele} は導入したEVの蓄電池容量である。
  • 1 \leq \mathrm{type}_\mathrm{EV} \leq N_\mathrm{V}

サンプルコードA

問題Aのツールキット一式はここからダウンロードできます。このツールキットを用いて、手元の環境でジャッジの実行が可能です。また、ビギナー向けのサンプルコードも用意しています。

  • テストケース
  • ジャッジプログラム
  • サンプルコード

Contents

Problem summary

A project to stably supply electricity from renewable energy to a region with distributed small power grids (nanogrids) has been launched aiming to achieve low-carbon society. The supplied electricity will be used not only in the electricity demand areas, but also for transporting people and goods by electric vehicles (EVs).

In this problem, you will take on the role of an area designer of the project. You will design a layout of nanogrids which can provide stable energy supply and smooth transportation services by making good use of the simulator developed by the development department. If the facility layout you designed can operate with a low environmental load and can supply power smoothly even in the event of a wide-area power outage, additional points will be obtained.

We have prepared the sample code for beginners. You can use this code as necessary.

Fig.1 A flow of problem A. Illustration shows overview and answer items for problem A.


Fig.2 Example of a design with specified budget limit of 70 million yen. In addition to designing equipment installation in each nanogrid, position of nanogrids, initial position and initial storage amount of each EV are also designed and submitted elsewhere.

First, the input and output format will be described.

Input and output format 1

First, the contestants will get the information they need from the judges. The input/output format at that time is as follows.

Contestant Judge
\mathrm{query}_1
\mathrm{output}_1
\mathrm{query}_2
\mathrm{output}_2
\vdots \vdots
\mathrm{query}_M
\mathrm{output}_M
\mathrm{"end"}
  • Each time you output a \mathrm{query}, the corresponding information is given from the standard input. The contestant needs to flush the standard output every time it outputs a \mathrm{query}. In addition, it needs to read through all the inputs every time it outputs a \mathrm{query} otherwise undefined behavior will occur.
  • end is required to terminate your query at the end of your output. The judge moves to the next operation by reading end. If end is not provided, undefined behavior will occur.

  • a valid \mathrm{query} is as follows. In the case of an invalid \mathrm{query}, WA (wrong answer) is returned.

  • budget
  • temporal
  • score
  • graph
  • demand
  • demand [day] [id]
  • radiation [day] [id]
  • asset
  • asset PV [id]
  • asset FE [id]
  • asset RB [id]
  • asset EVC [id]
  • asset vehicle [id]
  • order [day]
  • shelter
  • end
  • The output information corresponding to each \mathrm{query} is described in Query details.


Input and output format 2

After completing the instructions in the section titled Input and output format 1, the contestant will output the nanogrid and EV facility layout in the following format.

First, the contestant will output the number of nanogrids to be installed, N_\mathrm {grid}.

\begin{aligned}N_\mathrm{grid}\end{aligned}

Next, the information of each nanogrid is outputted in the following format.

\begin{aligned}& \mathrm{grid\_info}_1 \\& \vdots \\& \mathrm{grid\_info}_{N_\mathrm{grid}} \\\end{aligned}
  • The information of each nanogrid is outputted as \mathrm{grid\_info} for N_\mathrm{grid} lines. The details of \mathrm{grid\_info} will be described later.
  • The electricity demand of nanogrids installed outside the preset electricity demand areas is always 0.
  • For each nanogrid, if the land area required for PV installation exceeds the area of which PV installation is possible at each vertex (A_i in graph), it is WA.
  • If you try to install the nanogrid multiple times at the same vertex, the last installation will be effective.
  • IDs are assigned to the nanogrid in the order of installation, and each nanogrid will be referred by this ID thereafter. Note that this ID is different from the ID of the electricity demand area.

Next, the contestant will output the number of EVs, N_\mathrm{EV}.

\begin{aligned}N_\mathrm{EV}\end{aligned}

Next, the information of each EV is outputted in the following format.

\begin{aligned}& \mathrm{EV\_info}_1 \\& \vdots \\& \mathrm{EV\_info}_{N_\mathrm{EV}}\end{aligned}
  • The information of each EV is outputted as \mathrm{EV\_info} for N_\mathrm{EV} lines. The details of \mathrm{EV\_info} will be described later.
  • IDs are assigned to EVs in the order of installation, and and each EV will be referred by this ID thereafter.

At the end, the contestant will output the following specified command format as follows.

\begin{aligned}\mathrm{command} & & \mathrm{day} & & \text{opt}_1\end{aligned}
  • The first argument is a character string that specifies the execution form either test or submit. The valid strings are as follows.
  • test: Executes the test of the date specified by the second argument, \mathrm{day}, with the specified nanogrid and EV layout that the contestant output, and returns the score of that day to a standard input. The returned scored with test query is as follows:

    S_\mathrm{trans}\quad S_\mathrm{ele}\quad S_\mathrm{env}

    The contestant must read the returned score otherwise it is WA. It is noted that the execution time is set by the (judge's) CPU time.
  • submit: Submits the specified nanogrid and EV layout as an answer. With this submit command, the \mathrm{day} is ignored. The constant process must be terminated immediately after the submit output otherwise undefined behavior will occur.
  • The second argument specifies the date to run the test. The valid date ranges from the first day to the N_\mathrm{day}. Otherwise, it is WA.
  • The third argument specifies the number of EVs dedicated to energy control among nanogrids.

\mathrm{grid\_info} details

Input and output format
\begin{aligned}& x^\mathrm{grid}_\mathrm{pos} & & \mathrm{Chg}^\mathrm{grid}_\mathrm{init} \\& \mathrm{type}^\mathrm{grid}_\mathrm{PV} & & A^\mathrm{grid}_\mathrm{PV} \\& \mathrm{type}^\mathrm{grid}_\mathrm{FE} \\& \mathrm{type}^\mathrm{grid}_\mathrm{RB} & & A^\mathrm{grid}_\mathrm{RB} \\& \mathrm{type}^\mathrm{grid}_\mathrm{EVC}\end{aligned}
Details
  • In the first line, x^\mathrm{grid}_\mathrm{pos} and \mathrm{Chg}^\mathrm{grid}_\mathrm{init} represent the position and the initial storage amount of a nanogrid.
  • The following 4 lines specify the type and amount of facilities (PV, FE, RB and EVC) to be installed at the nanogrid. Only one type of PV, FE, RB, and EVC product can be installed.
  • The following line represents the configuration of PV equipment. \mathrm{type}^\mathrm{grid}_\mathrm{PV} represents type of PV product and A^\mathrm{grid}_\mathrm{PV} represents amount of the PV product to be installed in terms of power generation capacity.
  • The following line represents the configuration of FE equipment. \mathrm{type}^\mathrm{grid}_\mathrm{FE} represents type of FE product.
  • The following line represents the configuration of RB equipment. \mathrm{type}^\mathrm{grid}_\mathrm{RB} represents type of RB product and A^\mathrm{grid}_\mathrm{RB} represents amount of the RB product to be installed.
  • The following line represents the configuration of EVC equipment. \mathrm{type}^\mathrm{grid}_\mathrm{EVC} represents type of EVC product.
  • For PV installation, the following constraints must be met:

    A^\mathrm{PV} A^\mathrm{grid}_\mathrm{PV} \leq A_{x^\mathrm{grid}_\mathrm{pos}}

    where, A^\mathrm{PV} is the required area per PV power generation capacity, A^\mathrm{grid}_\mathrm{PV} is amount of the PV product to be installed and A_{x^\mathrm{grid}_\mathrm{pos}} is the area where PV can be introduced at the vertex where the nanogrid is to be installed.

\mathrm{EV\_info} details

Input and output format
\begin{aligned}& x^\mathrm{EV}_\mathrm{pos} & & \mathrm{Chg}^\mathrm{EV}_\mathrm{init} & & \mathrm{type}_\mathrm{EV}\end{aligned}
Details
  • At t = 0, EV position is set to x^\mathrm{EV}_\mathrm{pos}, initial EV charged amount is set to \mathrm{Chg}^\mathrm{EV}_\mathrm{init}, and the product type of EV is \mathrm{type}_\mathrm{EV}.
  • The vertex x^\mathrm{EV}_\mathrm{pos} must be a vertex where a nanogrid is installed.

Problem details


Map information

Map information is given as a simple undirected graph with a set of vertices and a set of edges. The graph represents a road network on which the movement and charge/discharge of electric vehicles (EV) occur. Each vertex is placed on a two-dimensional plane, and the population and the installed capacity of solar power generation facilities are specified. In addition, energy demand is set for some of the vertices.


Asset information

One nanogrid consists of photovoltaics (PV), a private generator equipped with fuel engines (FE), a storage rechargeable battery (RB), and an EV charge/discharge device or EV charger (EVC). When installing the nanogrid, it is also necessary to specify the configuration for these facilities.

The features of each facility are as follows:

  • PV: The power generated by the PV is proportional to the amount of solar radiation which is given for each vertex at each time interval. Once a PV is installed, no additional cost is required. However, if you try to install more than the installed capacity of each vertex, it will be defined as WA (wrong answer). Therefore, the following constraints must be fulfilled for PV installation.

    A^\mathrm{PV} A^\mathrm{grid}_\mathrm{PV} \leq A_i

    where, A^\mathrm{PV} is the required area per PV power generation capacity, which is the installation specification, A^\mathrm{grid}_\mathrm{PV} is amount of the PV product to be installed and A_i is the area of which PV installation is possible at the vertices where the nanogrid is to be installed.
  • FE: The power is generated by consuming fuel. When power generation from PV is insufficient, the power from FE is applied in order to compensate the shortage of electricity. Installation costs per output power are cheap and weather-independent power generation is possible. However, additional fuel costs are required for power generation.
  • RB: The rechargeable batteries are charged when power excess occurs, and are discharged when power shortage occurs. At the time of simulation, the initial storage amount at the beginning of the day can be specified arbitrarily.
  • EVC: It connects PV, FE, RB, and share load among one another, and also inputs and outputs power between a nanogrid and external devices such as electric vehicles.

If the amount of power generated by these facilities and the charge/discharge amount by EV are insufficient to power load and a power shortage occurs, the power will be compensated by purchasing from an existing electric system (energy from the grid).

For selection of EVs, an EV catalog will be provided. See details in Asset vehicles information

The initial costs of all above facilities and EVs are required. The standard amount of initial cost (Budget limit) can be obtained in the section titled "Input and output format 1". If the initial cost of your designed system exceeds the standard amount, the score will be penalized.


Energy demand

Energy demand is set for some of the vertices in the area. The location and the predicted energy demand can be obtained at the start of the test case.

Energy supply

Energy supply is preferentially covered by PV, and the difference between EV charge/discharge and energy demand is aggregated in RB. The FE operates when energy supply from PV is insufficient and power shortage occurs. If a power shortage exceeds the maximum output of the FE, the power will be compensated by purchasing from an existing electric system (energy from the grid).

  • Amount of PV power generation: The amount of PV power generation is given by the product of the amount of solar radiation and the installed PV capacity in the time interval. Please see details in Input and output format 2
  • Amount of FE power generation: When the sum of PV power generation amount, EV charge/discharge amount, and energy demand exceeds the RB charge amount, FE operates to compensate for the shortfall. If the shortfall exceeds the maximum output of FE, the excess power will be compensated by purchasing from the grid.
  • RB charge amount: RB works to compensate for short-term energy supply and demand imbalances. At each time, the difference between the sum of the PV power generation amount and EV charge/discharge amount and the energy demand is aggregated into the RB storage amount. In the other words, if the sum of the PV power generation amount and the charge amount from the EV to the nanogrid exceeds the sum of the energy demand and the charge amount from the nanogrid to the EV, the RB storage amount increases, and vice versa. If the battery capacity of RB is full and power generated in nanogrid is still excess, the surplus power is automatically abandoned.

Although the following content is what the judge performs in the daily operations and the contestant do not give direct instructions, they are described for consideration of designing facility layout and understanding of daily operations.

#### Transportation request and vehicles ##### Transportation request Based on a transportation request, an EV picks up the order at a starting point and transports it to a destination.The probability of occurrence of transportation requests is based on the consideration that (1) the spatial probability distribution is proportional to the population at each vertex, and (2) the temporal probability distribution follows the Poisson distribution (for details, refers to "Input and output format 1","Transportation Request Information"). Transportation requests occur online, and each request has the following internal states. Here, all variables are integers.
  • Order ID \mathrm{id}: All orders are assigned with IDs in the order when they occur. The allocation of order ID for orders that occur at the same time is not specified.
  • Order generated time \mathrm{ordered}: Time that an order occurs
  • Order start position p^\mathrm{order}: A position (a vertex) that an order occur, in other word, a position that an order will be picked up.
  • Order destination position d^\mathrm{order}: A position (a vertex) that an order will be delivered after picked up. Upon arrival loading and unloading will be done automatically.
  • Status \mathrm{state}: The status of the transportation order. 0 indicates that it has not yet been picked up by any EV, and 1 indicates that it has been picked up but has not yet arrived at the destination.
##### Vehicles Judges operate multiple EVs by issuing the following commands at each time to adjust the power balance between nanogrids and response to transportation request.
  • **Internal states**: each vehicle has the following internal states.
    • EV charged capacity \mathrm{Chg}^\mathrm{EV}(t)
    • EV position (u^V, v^V, d^V) : an EV is on edge (u^V, v^V), and the distance between its current position and vertex u^V is d^V.
  • **EV operation command**
    • stay: Let the EV stay in the same place. In this case, the EV does not consume electricity.
    • move w: Let the EV move with a unit of distance forward to the vertex w.
    • pickup a: The EV is working on the order ID a.
    • charge_from_grid d: Charge the EV from nanogrid at the EV position by the amount d.
    • charge_to_grid d: Charge nanogrid at the EV position from the EV by the amount d.
    • Total amount of charge/discharge according to the above two items is aggregated and evaluated as \Delta_\mathrm{EV} for each turn and each grid. For further information, please follow the link: [Energy balance details](#energy_balance_details)

Scoring

The final score (S) is defined by the following equation:

S = \sum_{i = 1}^{N_\mathrm{day}}w_{\mathrm{day}, i}S_i + w_\mathrm{acc}S_\mathrm{acc} - \alpha_\mathrm{cost}\max(0, C_\mathrm{total} - C_\mathrm{init})

where S_i is a score of the i^\mathrm{th} day, w_{\mathrm{day}, i} is a weighting factor for each S_i, S_\mathrm{acc} is a disaster response score, C_\mathrm{total} is a cost of the entire installed facilities and \alpha_\mathrm{cost} is a coefficient for score conversion. The S_i is defined by the following equation:

S_i = w_\mathrm{trans}S_\mathrm{trans} + w_\mathrm{ele}S_\mathrm{ele} + w_\mathrm{env}S_\mathrm{env}

where, S_\mathrm{trans}, S_\mathrm{ele} and S_\mathrm{env} represent transport score, energy score and environmental score respectively. w_\mathrm{trans}, w_\mathrm{ele}, w_\mathrm{env}, and w_\mathrm{acc} are weighting factors for each score. Each score is determined by a test with the parameters of the corresponding day. For further details of each score, see the description below.

Transportation score S_\mathrm{trans}

S_\mathrm{trans} = \sum_{i \in \mathcal O^\mathrm{trans}} \max\left(0, \alpha^\mathrm{trans}_\mathrm{fee}\mathrm{dist}_i - \alpha^\mathrm{trans}_\mathrm{penalty}(T_{\mathrm{wait}, i} - T_i)^2\right)

\mathcal O^\mathrm{trans} is a set of order IDs completed by the end of the test case. T_\mathrm{wait, i} is the time difference between the time that the order of ID i is generated and the time that it is delivered at the order's destination. T_i is the shortest travel time calculated from the shortest path length from order start position to order destination position of order ID i. \alpha^\mathrm{trans}_\mathrm{fee} is the parameter corresponding to the fare income and \alpha^\mathrm{trans}_\mathrm{penalty} is a penalty for delayed response in transportation requests.

Energy score S_\mathrm{ele}

S_\mathrm{ele} = \alpha^\mathrm{ele}C^\mathrm{balance} - \alpha^\mathrm{ele}_\mathrm{FE}\sum_{t = 0}^{T_\mathrm{max}}\sum_{i = 1}^{N_\mathrm{grid}}L^\mathrm{FE}_{i, t} - \alpha^\mathrm{ele}_\mathrm{buy}\sum_{t = 0}^{T_\mathrm{max}}\sum_{i = 1}^{N_\mathrm{grid}}L^\mathrm{buy}_{i, t}

C^\mathrm{balance} = \sum_{i = 1}^{N_\mathrm{EV}} C^{\mathrm{EV}_i}_{t = T_\mathrm{max}} + \sum_{i = 1}^{N_\mathrm{grid}} C^{\mathrm{grid}_i}_{t = T_\mathrm{max}} - \sum_{i = 1}^{N_\mathrm{grid}} C^{\mathrm{grid}_i}_{t = 0} - \sum_{i = 1}^{N_\mathrm{EV}} C^{\mathrm{EV}_i}_{t = 0} - \sum_{i = 1}^{N_\mathrm{EV}}\Delta^\mathrm{EV}_{\mathrm{move}, i}\mathrm{ret}_i

where C^\mathrm{balance} corresponds to the overall power balance, which is calculated as the sum of total amount of electricity stored in all EVs and all nanogrid at the time of t = T_\mathrm{max} minus the sum of the total amount of initial electricity stored in all EVs and all nanogrid and the total amount of power required for the EVs to return to the initial EVs position. L^\mathrm{FE}_{i, t} and L^\mathrm{buy}_{i, t} are the power generated by FE at nanogrid i, at time t, and the power purchased from the grid by nanogrid i, respectively. \alpha^\mathrm{ele}, \alpha^\mathrm{ele}_\mathrm{FE} and \alpha^\mathrm{ele}_\mathrm{buy} are coefficients for energy score conversion.

If the nanogrid is not installed in the power demand area, all the power consumed in the power demand area where the nanogrid is not installed is treated as purchased from the grid.

Environmental score S_\mathrm{env}

S_\mathrm{env} = - \alpha^\mathrm{env}_\mathrm{fuel} \sum_{t = 0}^{T_\mathrm{max}} \sum_{i = 1}^{N_\mathrm{grid}} L^\mathrm{FE}_{i, t} - \alpha^\mathrm{env}_\mathrm{buy} \sum_{t = 0}^{T_\mathrm{max}} \sum_{i = 1}^{N_\mathrm{grid}} L^\mathrm{buy}_{i, t}

\alpha^\mathrm{env}_\mathrm{fuel} and \alpha^\mathrm{env}_\mathrm{buy} are coefficients for environmental score conversion.

Disaster response score S_\mathrm{acc}

S_\mathrm{acc} = \alpha^\mathrm{acc}\mathrm{Day}

\mathrm{Day} is the number of continuous uninterruptible days for a disaster event with a maximum of N_\mathrm{acc}. \alpha^\mathrm{acc} is a coefficient for disaster response score conversion. The disaster response score will be calculated after N_\mathrm{day} days test for transportation score, energy score, and environmental score. See below for details.

The disaster response score is calculated as follows. 1. A day in the test case is randomly selected, and the test starts from the initial storage amount specified by the contestant. 2. A point of time in \{1, \cdots , T^\mathrm{max}\} is randomly selected, and defined as disaster starting time t_\mathrm{acc}. The amount of electricity stored at the time t_\mathrm{acc} during the test executed in 1. is recorded. 3. A new test starts. The initial storage amount is equal to the storage amount recorded in 2. After that, the test is continued as long as the uninterruptible operation is performed without receiving the power supply from the grid and within the range of the above-mentioned maximum number of continuous uninterruptible days N_\mathrm{acc}. During this period, the final amount of electricity stored on the previous day is used as the initial amount of electricity stored on the subsequent days. The additional electricity demand areas will appear at the location of the evacuation centers. For details, refer to the evacuation center information in [Input and output format 1](#input-and-output-format-1). Furthermore, no transport requests are generated during these tests. 4. The above disaster response test will be completed in up to N_\mathrm{acc} days.

Decision of final ranking

In the system test, 400 test cases that differ from those during the contest period, are used, and the final ranking is determined by the total score of all testcases. The code of each Contestant, that is subject to the system test, is "the last submission code with AC status“. In addition, if there is a test case at which TLE or WA is obtained, the score for that test case will be 0 points. Please refer to the table below for a detailed breakdown of test cases. (Note that the generator will not be released.)

(1)3 types from published toolkits + 3 types from unpublished data (the number of vertices of all testcases is less than 10000)
(2)A total of 4 types of solar radiation contains of 1 type of large amount, 1 type of small amount and 2 types of random amount of the radiation.
(3)Expected sum of the number of transportation requests is one-to-one correspondence with map data.
(4)Test cases where the execution time and memory consumption are larger than those used for ranking during the contest period are excluded.
(5)Map data 6 types \times solar radiation 4 types \times budget 3 types \times other parameters 4 types = 288 test cases
(6)Select to include the cases where specific assets or conditions are advantageous in consideration of future technology and policy.
(For example, a test case with large penalty (\alpha^\mathrm{ele}_\mathrm{buy} and \alpha^\mathrm{env}_\mathrm{buy}) for purchasing power from an existing grid. A test case with relatively small amount of either w_\mathrm{acc}, w_\mathrm{trans}, w_\mathrm{ele} or w_\mathrm{env})

Query details

Budget information (budget)

Input and output format
Contestant Judge
\mathrm{"budget"}
C_\mathrm{init}
Details
  • C_\mathrm{init} is the total budget specified for each test case.

Time related information (temporal)

Input and output format
Contestant Judge
\mathrm{"temporal"}
T_\mathrm{max} \quad T_\mathrm{last} \quad N_\mathrm{div} \quad N_\mathrm{day} \quad N_\mathrm{acc}
Details
  • T_\mathrm{max} is the number of steps per day. T_\mathrm{last} is the final step in which transport orders can occur in a day.
  • T_\mathrm{max} is evenly divided into N_\mathrm{div} intervals. Solar radiation information (radiation [day] [id]), energy demand information in detail (demand [day] [id]), and transportation request information (order [day]) are constant values ​​in each of these time intervals.
  • N_\mathrm{day} shows the number of days of data in a test case.
  • N_\mathrm{acc} shows the number of days of data in a test case that are used for the disaster response score calculation.

Score related information (score)

Input and output format
Contestant Judge
\mathrm{"score"}
\begin{aligned}& \alpha_\mathrm{cost} \\& w_{\mathrm{day}, 1} & & \cdots & & w_{\mathrm{day}, N_\mathrm{day}} \\& w_\mathrm{trans} & & w_\mathrm{ele} & & w_\mathrm{env} & & w_\mathrm{acc} \\& \alpha^\mathrm{trans}_\mathrm{fee} & & \alpha^\mathrm{trans}_\mathrm{penalty} \\& \alpha^\mathrm{ele} & & \alpha^\mathrm{ele}_\mathrm{FE} & & \alpha^\mathrm{ele}_\mathrm{buy} \\& \alpha^\mathrm{env}_\mathrm{fuel} & & \alpha^\mathrm{env}_\mathrm{buy} \\& \alpha^\mathrm{acc} \\\end{aligned}
Details
  • The coefficients used for score calculation are listed in 7 lines. See Scoring for detailed formulas on how these coefficients are used.

Graph related information (graph)

Input and output format
Contestant Judge
\mathrm{"graph"}
\begin{aligned}& V & & E \\ & x_1 & & y_1 & & p_1 & & A_1 & & l_1 \\ & \vdots \\ & x_V & & y_V & & p_V & & A_V & & l_V \\ & u_1 & & v_1 & & d_1 \\ & \vdots \\ & u_E & & v_E & & d_E \\\end{aligned}
Details
  • In the first line, the number of vertices V and the number of edges E of the graph are provided.
  • In the following V lines, information for each vertex is provided. The i-th line of the V lines shows coordinates (x_i, y_i) of vertex i, population p_i, the area of which PV installation is possible A_i, and cost per acquisition area l_i. The i-th line corresponds to the vertex number i.
  • In the following E lines, information for each edge is provided. The i-th line of the E lines shows vertex u_i, vertex v_i and the distance d_i between the two vertices.

Energy demand information (demand)

Input and output format
Contestant Judge
\mathrm{"demand"}
N_\mathrm{demand}
Details
  • N_\mathrm{demand} is the number of electricity demand areas.

Energy demand information in detail (demand [day] [id])

Input and output format
v
Contestant Judge
\mathrm{"demand"}\quad d \quad i
\begin{aligned}& x & & \sigma_D^2 \\& D^{\rm predict}_1 & & \cdots & & D^{\rm predict}_{N_{\rm div}} \\\end{aligned}
Details
  • Returns the predicted energy demand of the electricity demand areas specified by i on the day specified by d.

  • In the first line, x is vertex number of the vertex where the electricity demand area exists. \sigma_D^2 is the variance of the error of the predicted energy demand at each step. In brief, the error of the predicted energy demand at each step follows a normal distribution with an average of 0 and a variance of \sigma_D^2.

  • In the 2nd line, the predicted energy demand for each time interval is provided.The i-th column of the N_{\rm div} columns is represented by D^\mathrm{predict}_i indicating the predicted energy demand at time interval i.

Solar radiation information (radiation [day] [id])

Input and output format
Contestant Judge
\mathrm{"radiation"}\quad d \quad i
\begin{aligned}& R^{\rm predict}_1 & & \cdots & & R^{\rm predict}_{N_{\rm div}} \\\end{aligned}
Details
  • Returns the predicted amount of solar radiation at the vertex [id] on the day [day].
  • R^\mathrm{predict}_i represents the predicted amount of solar radiation at time interval i. About accuracy of the predicted amount of solar radiation, the amount of cumulative daily radiation is generally accurate, but the accuracy at each step is not guaranteed.

Asset information (asset)

Input and output format
Contestant Judge
\mathrm{"asset"}
\begin{aligned}& N_\mathrm{PV} \\& N_\mathrm{FE} \\& N_\mathrm{RB} \\& N_\mathrm{EVC} \\& N_V \\\end{aligned}
Details
  • In the first line, N_\mathrm{PV} is the number of types of PV equipments.
  • In the following line, N_\mathrm{FE} is the number of types of FE equipments.
  • In the following line, N_\mathrm{RB} is the number of types of storage rechargeable batteries.
  • In the following line, N_\mathrm{EVC} is the number of types of EVCs.
  • In the following line, N_V is the number of types vehicles.

Asset PV information (asset PV [pv_id])

Input and output format
Contestant Judge
\mathrm{"asset\ PV"}\quad i
\begin{aligned}& A^\mathrm{PV} & & C^\mathrm{PV}_{\mathrm{init}} \\\end{aligned}
Details
  • Return information of a product i of PV equipment. A^\mathrm{PV} is the required area per PV power generation capacity and C^\mathrm{PV}_\mathrm{init} is the cost per a unit of PV power generation capacity.
  • A valid PV i is an integer ranging from 1 to N_\mathrm{PV}.

Asset FE information (asset FE [fe_id])

Input and output format
Contestant Judge
\mathrm{"asset\ FE"}\quad i
\begin{aligned}& P^\mathrm{FE}_\mathrm{max} & & C^\mathrm{FE}_\mathrm{init}\\\end{aligned}
Details
  • Return information of a product i of FE equipment. P^\mathrm{FE}_\mathrm{max} is the maximum output power, and C^\mathrm{FE}_\mathrm{init} is the initial cost for a FE equipment.
  • A valid FE i is an integer ranging from 1 to N_\mathrm{FE}.
  • A product with P^\mathrm{FE}_\mathrm{max} = C^\mathrm{FE}_\mathrm{init} = 0 is listed in the FE catalog. If you would not install a FE equipment at a nanogrid, please select this product.

Asset RB information (asset RB [rb_id])

Input and output format
Contestant Judge
\mathrm{"asset\ RB"}\quad i
\begin{aligned} & \mathrm{Cap}^\mathrm{RB} & & C^\mathrm{RB}_\mathrm{init} \\\end{aligned}
Details
  • Return information of a product i of a storage rechargeable battery. \mathrm{Cap}^\mathrm{RB} is the battery capacity, and C^\mathrm{RB}_\mathrm{init} is the initial cost per unit of a battery.
  • A valid RB i is an integer ranging from 1 to N_\mathrm{RB}.

Asset EVC information (asset EVC [EVC_id])

Input and output format
Contestant Judge
\mathrm{"asset\ EVC"}\quad i
\begin{aligned}& P^\mathrm{EVC}_\mathrm{in} & & P^\mathrm{EVC}_\mathrm{out} & & C^\mathrm{EVC}_\mathrm{init} \\\end{aligned}
Details
  • Return information of a product i of the EVC, P^\mathrm{EVC}_{\mathrm{in}} is the maximum input power, P^\mathrm{EVC}_{\mathrm{out}} is the maximum output power, C^\mathrm{EVC}_{\mathrm{init}} is the initial cost per unit of an EVC.
  • A valid EVC i is an integer ranging from 1 to N_\mathrm{EVC}.
  • A product with P^\mathrm{EVC}_\mathrm{in} = P^\mathrm{EVC}_\mathrm{out} = C^\mathrm{EVC}_\mathrm{init} = 0 is listed in the EVC catalog. If you would not install an EVC equipment at a nanogrid, please select this product.

Asset vehicles information (asset vehicle [v_id])

Input and output format
Contestant Judge
\mathrm{"asset\ vehicle"}\quad i
\begin{aligned}& \mathrm{Cap}^V_\mathrm{ele} & & \mathrm{Cap}^V_\mathrm{pop} \\& P^V_{\mathrm{charge}} & & P^V_{\mathrm{discharge}} & & C^V_{\mathrm{init}} & & \Delta^V_{\mathrm{move}} \\\end{aligned}
Details
  • Return information of a product i of the vehicles.
  • In the first line, \mathrm{Cap}^V_{\mathrm{ele}} is an EV charged capacity, \mathrm{Cap}^V_{\mathrm{pop}} is order capacity.
  • In the second line,、P^V_\mathrm{charge} is the charging speed, P^V_{\mathrm{discharge}} is the discharging speed, C^V_{\mathrm{init}} is the cost per EV and \Delta^V_{\mathrm{move}} is amount of energy needed per unit of movement.
  • A valid i for asset vehicles information is an integer ranging from 1 to N_\mathrm{V}.

Transportation request information (order [day])

Input and output format
Contestant Judge
\mathrm{"order"}\quad d
\begin{aligned}& o_1 & & \cdots & & o_{N_\mathrm{div}} \\\end{aligned}
Details
  • Return information of the frequency of transportation requests on the d.
  • o_i is an expected value of transportation requests that occurs during the time interval i.

Evacuation center information (shelter)

Input and output format
Contestant Judge
\mathrm{"shelter"}
\begin{aligned}& N_\mathrm{shelter} \\& x^\mathrm{shelter}_1 & & p^\mathrm{shelter}_1 \\& \vdots \\& x^\mathrm{shelter}_{N_\mathrm{shelter}} & & p^\mathrm{shelter}_{N_\mathrm{shelter}} \\& D^\mathrm{shelter}_1 & & \cdots & & D^\mathrm{shelter}_{N_\mathrm{div}} \\\end{aligned}
Details
  • Return information of shelter.
  • In the first line, N_\mathrm{shelter} is the number of shelters.
  • In the following N_\mathrm{shelter} lines, information of shelters' position and capacity are provided. x_i and p_i represent position of shelter i and its capacity, respectively.
  • The following one line shows a standard power demand generated at shelters when a disaster occurs. D^\mathrm{shelter}_{i, j} represents the predicted energy demand at time interval i for each shelter, can be derived by using the following equation (round down the calculated number):
\begin{aligned}D^\mathrm{shelter}_{i, j} = p^\mathrm{shelter}_j  D^\mathrm{shelter}_i / 100\end{aligned}
  • When calculating the disaster response score, if the electricity demand area and the shelter are located at the same vertex, the energy demand at the relevant vertex is the sum of the energy demand from both the electricity demand area and the shelter.

Constraints for Input and Output

Of the following numbers, those described as float are given as floats, and the others are given as integers.

Input and output format 1

  • 40 \leq w_{\mathrm{day}, i} \leq 1000
  • 1000 \leq \alpha_\mathrm{cost} \leq 2000
  • 10000 \leq C_\mathrm{init} \leq 800000
  • 0 \leq C_\mathrm{total} \leq 1000000000
  • 0 \leq w_\mathrm{trans} \leq 1 [float]
  • 0 \leq w_\mathrm{ele} \leq 1 [float]
  • 0 \leq w_\mathrm{env} \leq 1 [float]
  • 0 \leq w_\mathrm{acc} \leq 1 [float]
  • 15 \leq \alpha^\mathrm{trans}_\mathrm{fee} \leq 20 [float]
  • 0.005 \leq \alpha^\mathrm{trans}_\mathrm{penalty} \leq 0.2 [float]
  • 0.003 \leq \alpha^\mathrm{ele} \leq 0.015 [float]
  • 0.003 \leq \alpha^\mathrm{ele}_\mathrm{FE} \leq 0.01 [float]
  • 0.004 \leq \alpha^\mathrm{ele}_\mathrm{buy} \leq 0.02 [float]
  • 20 \leq \Delta^\mathrm{EV}_{\mathrm{move}, i} \leq 300
  • 0.00025 \leq \alpha^\mathrm{env}_\mathrm{fuel} \leq 0.0012 [float]
  • 0.0005 \leq \alpha^\mathrm{env}_\mathrm{buy} \leq 0.0025 [float]
  • 1000000 \leq \alpha^\mathrm{acc} \leq 8000000
  • 3000 \leq T_\mathrm{max} \leq 10000
  • 2700 \leq T_\mathrm{last} \leq 9000
  • 15 \leq N_\mathrm{div} \leq 30
  • 2 \leq N_\mathrm{day} \leq 16
  • 1 \leq N_\mathrm{acc} \leq 8
  • 5000 \leq V \leq 20000
  • 5000 \leq E \leq 40000
  • -60000 \leq x_i \leq 60000 (1 \leq i \leq V)
  • -60000 \leq y_i \leq 60000 (1 \leq i \leq V)
  • 0 \leq p_i \leq 2000 (1 \leq i \leq V)
  • 1 \leq A_i \leq 5000 (1 \leq i \leq V)
  • 5 \leq l_i \leq 300 (1 \leq i \leq V)
  • 1 \leq u_i \leq V (1 \leq i \leq E)
  • 1 \leq v_i \leq V (1 \leq i \leq E)
  • 1 \leq d_i \leq 300 (1 \leq i \leq E)
  • 0 \leq N_\mathrm{demand} \leq 12
  • 10 \leq \sigma_D^2 \leq 30
  • 0 \leq D^{\rm predict}_i \leq 200 (1 \leq i \leq N_\mathrm{div})
  • 0 \leq R^{\rm predict}_i \leq 10 (1 \leq i \leq N_\mathrm{div}) [float]
  • 2 \leq N_\mathrm{PV} \leq 3
  • 2 \leq N_\mathrm{FE} \leq 4
  • 2 \leq N_\mathrm{RB} \leq 3
  • 2 \leq N_\mathrm{EVC} \leq 5
  • 3 \leq N_V \leq 4
  • 10 \leq A^\mathrm{PV} \leq 15
  • 50 \leq C^\mathrm{PV}_{\mathrm{init}} \leq 120
  • 0 \leq P^\mathrm{FE}_\mathrm{max} \leq 500
  • 0 \leq C^\mathrm{FE}_\mathrm{init} \leq 4000
  • 8000 \leq \mathrm{Cap}^\mathrm{RB} \leq 100000
  • 250 \leq C^\mathrm{RB}_\mathrm{init} \leq 1000
  • 0 \leq P^\mathrm{EVC}_\mathrm{in} \leq 500
  • 0 \leq P^\mathrm{EVC}_\mathrm{out} \leq 500
  • 0 \leq C^\mathrm{EVC}_\mathrm{init} \leq 2000
  • 40000 \leq \mathrm{Cap}^V_\mathrm{ele} \leq 900000
  • 2 \leq \mathrm{Cap}^V_\mathrm{pop} \leq 50
  • 300 \leq P^V_{\mathrm{charge}} \leq 1200
  • 300 \leq P^V_{\mathrm{discharge}} \leq 1200
  • 1500 \leq C^V_{\mathrm{init}} \leq 8000
  • 20 \leq \Delta^V_{\mathrm{move}} \leq 300
  • 0 \leq o_i \leq 1000 (1 \leq i \leq N_\mathrm{div})
  • 4 \leq N_\mathrm{shelter} \leq 16
  • 1 \leq x^\mathrm{shelter}_i \leq V (1 \leq i \leq N_\mathrm{shelter})
  • 20 \leq p^\mathrm{shelter}_i \leq 800 (1 \leq i \leq N_\mathrm{shelter})
  • 0 \leq D^\mathrm{shelter}_i \leq 12 (1 \leq i \leq N_\mathrm{div})

Input and output format 2

  • S_\mathrm{trans} [float]
  • S_\mathrm{ele} [float]
  • S_\mathrm{env} [float]
  • 1 \leq x^\mathrm{grid}_\mathrm{pos} \leq V
  • 0 \leq \mathrm{Chg}^\mathrm{grid}_\mathrm{init} \leq \mathrm{Cap}^\mathrm{RB} A^\mathrm{grid}_\mathrm{RB}
    • \mathrm{Cap}^\mathrm{RB} is the battery capacity of the installed RB and A^\mathrm{grid}_\mathrm{RB} represents amount of the RB product to be installed.
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{PV} \leq N_\mathrm{PV}
  • 0 \leq A^\mathrm{grid}_\mathrm{PV} \leq 500
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{FE} \leq N_\mathrm{FE}
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{RB} \leq N_\mathrm{RB}
  • 0 \leq A^\mathrm{grid}_\mathrm{RB} \leq 10000
  • 1 \leq \mathrm{type}^\mathrm{grid}_\mathrm{EVC} \leq N_\mathrm{EVC}
  • 1 \leq x^\mathrm{EV}_\mathrm{pos} \leq V
  • 1 \leq \mathrm{Chg}^\mathrm{EV}_\mathrm{init} \leq \mathrm{Cap}^V_\mathrm{ele}
    • \mathrm{Cap}^V_\mathrm{ele} is an installed EV charged capacity.
  • 1 \leq \mathrm{type}_\mathrm{EV} \leq N_\mathrm{V}

Sample Code A

A software toolkit for scoring and testing on a local contestant environment is provided through the following link. Sample code for beginners is also available.

  • Test case
  • Judge program
  • Sample code