あるプロジェクトは作業 の つからなる。各作業の通常の所要日数、先行作業(その作業を始める前にすべて終わっていなければならない作業)、短縮できる最大日数、 日短縮するごとにかかる追加費用は次のとおりである。
| 作業 | 先行作業 | 通常の所要日数 | 短縮できる最大日数 | 1日あたりの短縮費用(万円) |
|---|---|---|---|---|
| なし | ||||
| なし | ||||
各作業は 日単位で短縮でき、短縮費用は短縮した日数に比例する。プロジェクト全体の完了までの日数を 日にするために必要な追加費用の最小値は何万円か。
各作業の 1 日あたり短縮費用と短縮上限から、すべてのクリティカルパスを同時に短くする最も安い組合せを選び、目標工期を達成するための追加費用の最小値を求められる
PERT で求めた最短完了時刻が目標より長いとき、費用をかけて作業を短くし、工期を縮めることを工期短縮(クラッシング)といいます。各作業には「1 日短くするのにかかる費用(短縮費用)」と「最大で何日短くできるか(短縮上限)」が与えられます。この技能を使うと、目標工期を達成するための追加費用の最小値を求められます。工事・製品開発・イベント準備などの日程計画で使います。
プロジェクトの完了時刻は、開始から終了までの経路(パス)のうち最も長いもの、つまりクリティカルパスの長さで決まります。クリティカルパスが複数あるときは、どれか 1 本でも元の長さのまま残れば完了時刻は縮みません。したがって工期を 1 日縮めるには、すべてのクリティカルパスがそれぞれ 1 日以上短くなるように作業を選ぶ必要があります。一方、クリティカルパスに含まれない作業を短くしても完了時刻は変わらず、その費用は無駄になります。
短縮費用は 1 日あたりで決まっているので、「すべてのクリティカルパスに、選んだ作業が少なくとも 1 つずつ含まれる」組合せのうち費用の合計が最も小さいものを選べば、その 1 日については最も安く縮められます。2 本のクリティカルパスに共通の作業があれば、その作業 1 つで両方を縮められます。共通の作業がなければ各パスから 1 つずつ選びます。どちらが安いかを比べて決めます。1 日縮めると、それまで余裕のあったパスが新たにクリティカルになることがあるので、短縮は 1 日ずつ行い、そのたびにクリティカルパスを求め直します。
ただし、1 日ごとに最安を選ぶだけでは、全体の最小になる保証はありません。選んだ組合せの中に同じパス上の作業が 2 つあると、そのパスは 2 日縮んで 1 日分が無駄になることがあります。また、前に短縮した作業が後の段階で不要になることもあります。そこで、すでに短縮した作業を 1 日戻す(その分の費用が戻る)変更も候補に入れます。さらに最小であることを確かめるには、各作業の短縮日数を とおき、各パスについて「そのパス上の短縮日数の合計 パスの長さ 目標工期」という不等式を立て、短縮上限の範囲で場合分けして費用の最小値を調べます。この確認は小さな問題なら手で行えます。
前提の技能ですべてのパスの長さを求め、最短完了時刻とすべてのクリティカルパス(最長のパス)を求める。
1 日縮める候補を挙げる。すべてのクリティカルパスが正味 1 日以上短くなるように、短縮上限に達していない作業を 1 日短くする組合せを考える。すでに短縮した作業を 1 日戻す変更(費用はマイナスとして数える)を含めた組合せも候補にする。
候補のうち費用の合計が最小のものを選んで実行し、各作業の所要日数・短縮上限の残り・費用の累計を更新する。
更新後の所要日数でパスの長さを計算し直し、新しいクリティカルパスを求める。
完了時刻が目標工期になるまで手順 2〜4 をくり返す。途中でどの候補も作れなくなったら、その目標工期は達成できない。
確認として、各作業の短縮日数を とおき、各パスについて を立てる。短縮上限の範囲で場合分けして費用の最小値を求め、手順 5 の累計と一致することを確かめる。
作業 A, B, C, D からなるプロジェクトがある。各作業の通常の所要日数・先行作業・1 日あたりの短縮費用・短縮上限は次のとおりである。
A: 4 日、先行作業なし、4 万円/日、上限 2 日
B: 3 日、先行作業なし、2 万円/日、上限 2 日
C: 5 日、先行作業 A、1 万円/日、上限 2 日
D: 6 日、先行作業 A と B、2 万円/日、上限 2 日
プロジェクトの完了を 8 日にするための追加費用の最小値(万円)を求めよ。
【手順 1】最早開始時刻は A が 0、B が 0、C が 4、D が です。完了時刻は 日です。パスは (9 日)、(10 日)、(9 日)の 3 本で、クリティカルパスは だけです。
【1 回目(10 日→9 日)】
手順 2: を縮める候補は A(4 万円)と D(2 万円)です。まだ短縮した作業はないので、戻す候補はありません。
手順 3:最も安い D を 1 日短くします。D は 5 日、D の上限の残りは 1 日、累計は 2 万円です。
手順 4:パスの長さは が 9、 が 9、 が 8 です。クリティカルパスは と の 2 本です。
【2 回目(9 日→8 日)】
手順 2:2 本とも縮める組合せは、共通の作業 A だけ(4 万円)か、C と D を 1 日ずつ( 万円)です。D を 1 日戻す変更を含めると、 を正味で縮めるのに A を 2 日縮める必要があり、少なくとも 万円かかります。
手順 3:最も安い C と D を選び、1 日ずつ短くします。C は 4 日、D は 4 日(D の上限は使い切り)、累計は 万円です。
手順 4:パスの長さは が 8、 が 8、 が 7 で、完了時刻は 8 日です。
【手順 5】目標の 8 日に達したので、累計は 5 万円です。
【手順 6(確認)】短縮日数を (それぞれ 0 以上 2 以下の整数)とします。8 日にするための条件は
で、費用は です。
・ のとき: より 、 です。このとき は で満たされます。費用の最小は 万円です。
・ のとき: より、費用は 万円以上です。
・ のとき: より、費用は 万円以上です。
したがって最小値は 5 万円で、手順 5 の結果と一致します。
答え:
クリティカルパスが複数あるのに、1 本だけを縮めてしまう誤り。例題の 2 回目に最も安い C(1 万円)だけを縮めると、 は 8 日になりますが は 9 日のままで、完了時刻は縮みません。正しくは、すべてのクリティカルパスを縮める組合せ(C と D、または A)の中から最も安いものを選びます。
クリティカルパス上にない作業を、費用が安いからといって短くしてしまう誤り。例題のはじめに B(2 万円)を縮めても が 8 日になるだけで、完了時刻は 10 日のままです。正しくは、クリティカルパス上の作業だけを候補にします。
何日分もまとめて縮めてしまい、新しく生じるクリティカルパスを見落とす誤り。例題で D を一度に 2 日縮めれば 10 日から 8 日になると考えても、 が 9 日のまま残り、完了時刻は 9 日にしかなりません(費用は 4 万円)。正しくは、1 日ずつ縮めて、そのたびにクリティカルパスを求め直します。
必要な条件を一部のパスだけで考え、最小性の確認を誤る誤り。たとえば「A を 2 日縮めれば 8 日になる」と考えても、 は 9 日のまま残ります。正しくは、 のようにすべてのパスについて条件を立て、短縮上限 も守って比べます(A を 2 日縮める場合は B か D も縮める必要があり、10 万円以上かかります)。
この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。
あるプロジェクトは作業 の つからなる。各作業の通常の所要日数、先行作業(その作業を始める前にすべて終わっていなければならない作業)、短縮できる最大日数、 日短縮するごとにかかる追加費用は次のとおりである。
| 作業 | 先行作業 | 通常の所要日数 | 短縮できる最大日数 | 1日あたりの短縮費用(万円) |
|---|---|---|---|---|
| なし | ||||
| なし | ||||
各作業は 日単位で短縮でき、短縮費用は短縮した日数に比例する。プロジェクト全体の完了までの日数を 日にするために必要な追加費用の最小値は何万円か。
あるプロジェクトは作業 の つからなる。各作業の通常の所要日数、先行作業(その作業を始める前にすべて終わっていなければならない作業)、短縮できる最大日数、 日短縮するごとにかかる追加費用は次の表のとおりである。
| 作業 | 通常の所要日数 | 先行作業 | 短縮できる最大日数 | 1日あたりの短縮費用(万円) |
|---|---|---|---|---|
| なし | ||||
| なし | ||||
各作業は 日単位で短縮でき、短縮費用は短縮日数に比例するものとする。プロジェクトの完了までの日数を 日にするために必要な追加費用の最小値は何万円か。
あるプロジェクトは作業 の つからなる。各作業の通常の所要日数、先行作業(その作業を始める前にすべて終わっていなければならない作業)、短縮できる最大日数、 日短縮するごとにかかる追加費用は次の表のとおりである。
| 作業 | 通常の所要日数 | 先行作業 | 短縮できる最大日数 | 日あたりの短縮費用(万円) |
|---|---|---|---|---|
| なし | ||||
| なし | ||||
短縮は 日単位で行い、短縮費用は短縮した日数に比例するものとする。プロジェクト全体の完了までの日数を 日にするために必要な追加費用の最小値は何万円か。
あるプロジェクトは作業 の つからなる。各作業の通常の所要日数、先行作業(その作業を始める前にすべて終わっていなければならない作業)、および短縮のデータは次のとおりである。
| 作業 | 通常の所要日数 | 先行作業 | 1 日短縮あたりの追加費用(万円) | 短縮できる最大日数 |
|---|---|---|---|---|
| なし | ||||
| なし | ||||
各作業は、先行作業がすべて終わればすぐに始められ、同時に進められる作業の数に制限はない。各作業の所要日数は 日単位で、表の「短縮できる最大日数」まで短縮でき、追加費用は短縮した日数に比例する。
プロジェクト全体の所要日数(すべての作業が終わるまでの日数)を 日以下にするために必要な追加費用の合計の最小値は何万円か。
あるプロジェクトは作業 の つからなる。各作業の通常の所要日数、先行作業(その作業を始める前にすべて終わっていなければならない作業)、短縮できる最大日数、 日短縮するごとにかかる追加費用(千円)は次のとおりである。
| 作業 | 通常の所要日数 | 先行作業 | 最大短縮日数 | 日あたりの短縮費用 |
|---|---|---|---|---|
| なし | ||||
| なし | ||||
各作業について短縮日数 を 以上その作業の最大短縮日数以下の整数から作業ごとに独立に選ぶ。このとき、その作業の所要日数は(通常の所要日数) 日になり、追加費用は( 日あたりの短縮費用) 千円かかる。各作業は先行作業がすべて終わりしだい直ちに開始でき、同時に進められる作業の数に制限はない。プロジェクトの開始からすべての作業が完了するまでの日数を 日以下にするとき、 つの作業の追加費用の合計の最小値(千円)を求めよ。