2025年7月18日金曜日

Q添付のファイルで予定入力のスタッフ4の2日に「希扱」の予定入力を入れた時のエラーの理由がどうしてもわかりません

 Ans.

拘束*拘束制約がハード制約となっており、先月からの連続で見るとスタッフ4が1日に拘束とならざるを得ないことと矛盾するようです。



30日にスタッフ4が拘束であることは変えようがないので、拘束*拘束制約をソフト制約化することにより解が出るようにします。



解析:
Python制約レベル7のエラーが出ています。とりあえず、この原因かどうかを判別したいので当該言語制約の✓を外して求解します。

依然としてハードエラーになりました。根本原因は、Pythonではありません。

スタッフ4関係であることは間違いなさそうなので、関係しそうなハード制約をソフト制約化
し求解の試行錯誤を行います。下記、スタッフ4の下記制約をソフト化するだけで、解が出ることが分かりました。
当該制約をソフト化したときの解です。拘束*拘束パターンが出現していることが分かります。

スタッフ4の30日勤務をブランクとすれば、ハード制約のままでもOKでした。よって、この制約が原因である、と特定できました。

以上で解析終了です。

最終的な解は、PythonをEnableして以下のように得ました。

考察
解がないときの解析は、非常に面倒です。簡単には、解がないときは、予定部をソフト化して、予定が変更になった部分に着目します。

しかし、今回、原因がない原因を追究したい、とのことでしたので、上のような手順で解析しました。上のように、具体的原因の追究は手間がかかるのが普通です。特に、ハード制約が多く、解のない原因が複数の要因による場合、真の原因に辿り着くのは容易ではありません。従い、次の指針を推奨します。

基本的には、ハード制約は、必ず実現できるものであるべきです。実現出来ない可能性があるものは、原則的にソフト制約とします。

どうしてもこれだけは実現したいというアイテムは、ハード制約化してもよいですが、その数は出来るだけ抑えるようにするようにした方がよいでしょう。



0 件のコメント:

コメントを投稿