2017-07-02 11 views
0

私は制約付きのタブ検索を使用して、自動従業員スケジューリングアプリケーションを開発しています。タブー検索:「従業員がペアで作業する」制約を実装する方法

私はすでに多くの制約が働いています(従業員の最小時間、シフトごとに必要な従業員の数、一緒に仕事をしてはいけない従業員...)。

自動プランナーは、繰り返しごとに(従業員の追加/削除/スワップ)、生成されたすべてのソリューション(移動ごとに1つのソリューション)の制約を評価し、最小のペナルティでソリューションを選択します。

私は現在、「従業員Aがシフトに予定されている場合、従業員Bもその同じシフトでスケジュールする必要があります」などの制約を実装しようとしています。

私の問題は、これを実装する方法がわかりません。

従業員AをスケジュールされていないシフトSでスケジュールするとしましょう。作成しようとしている制約が評価されている場合、従業員Aは従業員Bなしでスケジュールされているため、その結果、この解決法は良い選択であっても、従業員AまたはBのどちらも働かなくても選択されない可能性があります。

誰にも分かりませんか?

おかげ

答えて

1

いくつかの提案:

無人シフトのためのペナルティは、対になっていない友人のためのペナルティよりも大きくする必要があります。

シミュレートされたアニーリングを使用することができます。一時的なペナルティの増加が時々受け入れられることがあります。

あなたは別の種類の移動をすることができます。つまり、より多くの人を追加/削除し、「友人」を一緒に移動させることです。

+0

私は既にオプション1と3を使っていましたが、私が助けることができれば、プランナーのコアを変更しないようにしたいと思っていました。私は最初に他の1&2を試してみると、それは動作しません、私は新しい動きを追加する必要があります。 – David

関連する問題