
5) 申告制エレベータ
エレベータの待ち時間でイライラしたことはないでしょうか。
利用者の生活リズムが事前に把握できるのであればもっと最適化ができそうです。
そこで完全申告制のエレベータを考えてみましょう。
10F建てのオフィスビルがあります。
事前に全ての利用者から申告を受けています。
エレベータが最適に動作するアルゴリズムを考えてみましょう。
エレベータには下記の制約があります。
・エレベータが1つの階を移動するのに掛かる時間は2秒です。
・一旦、エレベータの扉が開くと、閉まるまでに最低でも5秒掛かります。
※扉の開閉時間は、この5秒に含まれているものとします。
・エレベータの初期状態は1Fで扉が閉まっています。
エレベータの入力データと出力データのフォーマットは決まっています。
下記ファイルを参照して下さい。
<io_spec.txt>
i)エレベータを1台、最大乗車人数を1人とします。
単純に入力データの識別番号順に、利用者を運ぶプログラムを作成してください。
入力データは下記ファイルとします。
<input_i.csv>
ii)任意の入力データと出力データを読み込み、全ての申告が正しく満たされたこと、前述の動作制約を守ってエレベータが動作していることを確認するプログラムを作成してください。
また、希望乗車時刻から降車時刻までに掛かった全申告の時間を合計して出力してください。
プログラムの入力形式・出力形式は自由とします。
iii)エレベータを1台、最大乗車人数を5人とします。
希望乗車時刻から降車時刻までに掛かった全申告の時間の合計ができるだけ小さくなるようなプログラムを作成してください。
入力データは下記ファイルとします。
<input_iii_iv.csv>
iv)エレベータを2台、 最大乗車人数を5人とします。
希望乗車時刻から降車時刻までに掛かった全申告の時間の合計ができるだけ小さくなるようなプログラムを作成してください。
入力データは下記ファイルとします。
<input_iii_iv.csv>