2026年4月28日火曜日

Q,解が思い通りの挙動にならない

 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 件のコメント:

コメントを投稿