単元一覧 › 大学数学 アルゴリズムと計算量

アルゴリズムと計算量の問題

難易度 2教科書の演習問題レベル大学数学 アルゴリズムと計算量

台の機械で 個の仕事 をすべて処理する。仕事 には処理時間 と重み が次のように定まっている。

仕事
処理時間
重み

機械は時刻 から使うことができ、どの仕事も時刻 の時点ですでにそろっていて、いつでも処理を始められる(仕事ごとの到着時刻や締め切りの制約はない)。機械は同時に つの仕事しか処理できない。また、仕事を途中で中断することはできない(仕事 を始めたら、 だけ時間がたって終わるまで処理を続ける)。仕事 の処理が終わる時刻を とする。

仕事を処理する順序(および開始時刻)をうまく選んで

をできるだけ小さくしたい。 の最小値を求めよ。

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

どの仕事も時刻 から始められるので、機械を休ませても得はせず、隙間なく処理するとしてよい。決めるのは順序だけである。隣り合う つの仕事を入れかえたとき がどう変わるかを調べよう。

ヒント 2

隣り合う仕事 を の順から の順に入れかえると、(入れかえ前の )(入れかえ後の ) となり、他の仕事の終了時刻は変わらない。このことから、 の小さい順に処理するのが最適だとわかる。

ヒント 3

比 の小さい順に並べると となる。この順で処理時間を順に足して各仕事の終了時刻を求め、重みをかけて合計しよう。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

空き時間を入れる必要はないこと どの仕事も時刻 から処理を始められるので、機械を休ませる時間があっても、それ以降の仕事の終了時刻がすべて遅れるだけで は小さくならない。よって時刻 から隙間なく処理するとしてよく、決めるべきなのは処理の順序だけである。順序は 通りの有限個なので、最小値は存在する。

交換による議論(貪欲法の根拠) ある順序で、隣り合う つの仕事 がこの順に処理され、 の開始時刻が であるとする。このとき の部分の寄与は

である。 と を入れかえて の順にすると、寄与は

となる。 つの仕事が占める時間帯全体は変わらないので、他の仕事の終了時刻は変わらない。入れかえ前から入れかえ後を引いた差は

である。したがって (すなわち )なら、入れかえると は真に小さくなる。

よって最適な順序では、隣り合う仕事について常に が成り立つ。つまり、 の小さい順に処理するのが最適である(スミスの規則)。今回は比の値がすべて異なるので、この順序はただ一つに決まる。

比の計算


小さい順に並べると となる。

終了時刻と の計算
- :、
- :、
- :、
- :、
- :、
- :、

したがって

となる。よって最小値は である。

別解

1 台の機械で重み付き完了時刻和 を最小にする問題なので、Smith の規則(WSPT 規則)を使う。 の小さい順に処理すればよい。

各仕事の は次のとおり。
F: 、C: 、B: 、A: 、E: 、D: 。

よって最適な順序は F, C, B, A, E, D である。この順序での完了時刻は
。

。

検算として隣接する 2 仕事を入れ替えてみる。たとえば A と E を入れ替えると、E の完了が 12、A の完了が 15 になる。このとき で、元の より大きい。したがって元の順序のほうが小さい。

また に同じ値がないので、最適な順序は一意である。待ち時間(空き時間)を入れても は小さくならない。

以上より、 の最小値は 。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題