Q.今月に関して13日の午後のみ4名全員出勤にしたいと思いまして、いつも決まっている列制約の3行目:月火水の午後は3名をソフト制約にして、28行目の全員出勤日は午後4名をハードにしたところ、どうしても12日の午後が2人になってしまい、思い通りの挙動になりません。
この時々ある特別な変更はどう設定すればよいでしょうか?
多分、スタッフの行制約との絡みなのですが、もしそうなら、人数の方を優先して解が出ないようにして、スタッフ側で調整したいのです。
Ans.
まず、考えられるのは、想い描いている状態が、ハード制約上の矛盾を孕んでいる可能性です。
現在の状態を確認しました。
確かに12日が2名になっております。1)月火水の午後は3名をソフト制約にして、
2)28行目の全員出勤日は午後4名をハードにしたところ、
3)どうしても12日の午後が2人になってしまう
そこで、まず、ソフト制約化した制約をハード制約に戻しました。
すると、解のない状態となりました。解要因の日が12日だけではないことから、12日以外で、解がない事態が考えられます。そこで、原因を分離するために、12日だけに効くハード制約を記述しました。これで求解してみると、やはり解が無い状態が再現します。
このことが意味しているのは、12日にだけ効く制約と矛盾がある、
■12日の午後が3人
■13日午後4名
が物理的に相いれない状態になっている、ということです。上にその要因が列挙されています。試しに、5連休関係の制約を無効または、ソフト制約化してみます。
こうすると解がありました。
あるいは、関係する予定をソフト化します。
このようにして、要因として列挙されているハード制約をソフト化することで、目的のハード制約を満たしたまま、解を得ることが出来ます。その他にも要因は示されているので、別な緩和策はあると思います。以上が、とりあえず、ご要求を満足させるやり方の例になります。緩和策は、実は無数にあり、何が適切な緩和かは、管理者だけが知っているので、ここではあくまで例ということでご承知ください。
<この時々ある特別な変更>
xxさまのプロジェクトは、通常のプロジェクトとは異なります。通常は、ハード制約を設定したらそこの制約はいじりません。それがルールということです。ところが、小人数であるが故だと思いますが、そのハード制約を変更の変更が元で大変な変更になってしまっています。通常スタイルでは、ルールを決めたら(ハード制約を決めたら)後は予定のソフト化で対応するのが基本です。(推奨している記述スタイルです。)
予定の方をハード制約とするとその都度、制約を見直す必要になることはご承知の通りです。
xxさまのプロジェクトは、色々なノウハウが詰まっていて、私がどうこう出来るプロジェクトでは、もはやありません。
スタッフの予定を最優先のハード制約とするなら、列制約・行制約共にソフト制約化すべきでしょう。大事なことは、何をハード制約するか?です。これがぶれると、土台を弄るようなもので、しばしば大変な変更を伴ってしまいます。
まとめとして、
■上記の観点も盛り込み、
■今回のような機に、整理統合を心掛けながら、
■プロジェクトを鍛え育成して頂けたら、
さらに使い易くなっていくのではないかと思います。
0 件のコメント:
コメントを投稿