0 / 0
資料の 英語版 に戻る
マルチコンセプト制約とカスタム決定の追加Decision Optimization シフト割り当て
最終更新: 2024年11月21日
Decision Optimization Modeling Assistant を使用した制約およびカスタム決定の作成

この Decision Optimization Modeling Assistant の例は、複数概念反復の使用方法、制約内の associated キーワード、独自のカスタム決定の定義方法、および論理制約の定義方法を示しています。 説明のために、リソース割り当て問題 ShiftAssignmentが使用され、その完成したモデルとデータが DO サンプルに提供されています。

始める前に

要件
Decision Optimization モデルを編集して実行するには、以下の前提条件が必要です。
管理者 または 編集者 の役割
プロジェクト内で 管理者 または 編集者 の役割を持っている必要があります。 共有プロジェクトのビューアーは、エクスペリメントのみを表示できますが、それらを変更したり実行したりすることはできません。
watsonx.aiランタイムサービス
プロジェクトに関連付けられたwatsonx.aiRuntimeサービスが必要です。 Decision Optimization エクスペリメントを作成するときに、テストを追加できます。
デプロイメント・スペース
Decision Optimization エクスペリメントに関連付けられたデプロイメント・スペースが必要です。 Decision Optimization エクスペリメントを作成するときに、デプロイメント・スペースを選択できます。

このタスクについて

この例では、従業員を異なるシフトに割り当てることについて説明します。毎日、必要な数の従業員をオンコールにする必要があります。 このサンプルで使用されるファイルは、 DO-samplesにあります。

このビデオは、この資料の概念とタスクを学習するための視覚的な方法を提供します。 Decision Optimization エクスペリメントにサンプルをロードした後、ビデオに従うことができます。

ビデオの特記事項: このビデオのいくつかのマイナー・ステップとグラフィカル・ステップは、ご使用のプラットフォームとは異なる場合があります。 ユーザー・インターフェースも頻繁に改善されます。

手順

サンプルをダウンロードして開くには、以下のようにします。

  1. DO-samplesModel_Builder サブフォルダーから ShiftAssignment.zip ファイルをダウンロードします。 関連する製品とバージョンのサブフォルダーを選択します。
  2. プロジェクトを開くか、空のプロジェクトを作成します。
  3. 「資産」 タブを選択します。
  4. 選択する新しい資産 > 最適化問題を解決するの中にモデルを操作するセクション。
  5. 開いた 「 Decision Optimization エクスペリメントの作成」 ウィンドウで、 「ローカル・ファイル」 をクリックします。
  6. ローカルで参照して、ダウンロードした ShiftAssignment.zip アーカイブを見つけて選択します。 「開く」をクリックします。 あるいは、ドラッグ・アンド・ドロップを使用します。
  7. まだwatsonx.aiRuntimeサービスをプロジェクトに関連付けていない場合は、実験用のデプロイメントスペースを選択する前に、まずAdd aMachine Learningservice を選択してサービスを選択または作成する必要があります。
  8. 「作成」をクリックします。
    サンプルと同じ名前で Decision Optimization モデルが作成されます。
  9. シナリオ・ペインを開き、 AssignmentWithOnCallDuties シナリオを選択します。

結果

AssignmentWithOnCallDuties シナリオ「データの準備」 ビュー で、インポートされたデータ資産を確認できます。 これらの表は、シフトと、そのシフトに割り当てる必要がある従業員、およびその従業員が待機する必要がある日を表しています。

Staff Assignment データを示すデータ・ビューを準備します。

複数概念反復の使用

このタスクについて

各従業員の勤務シフトを 1 日に 1 回までとするいうルールをモデル策定で表現する必要があるとします。 例えば、1 人の従業員に同じ日の 2 つのシフトを割り当てることはできません。 このモデルの定式化に示すように、曜日ごとに制約を使用することができます。

1 日に 1 人の従業員につき 1 つのシフトのみを定式化するためのいくつかの制約 (1 日に 1 つ)

ただし、各曜日の制約をリストするのは煩雑です。モデルが年内の日に基づいている場合は、これらのタイプの制約を数百個リストする必要があります。 以下の手順は、複数概念の反復と associated キーワードを使用して、複数概念の反復を表現する方法を示しています。 したがって、そのようなルールは 1 つの句のみで表すことができます。

手順

複数概念の反復を使用するには、以下のステップを実行します。

  1. サイドバーの モデルの作成 をクリックして、モデルの設計を表示します。
    モデル策定に、インテントが、目的と制約に応じてシフトに従業員を割り当てることであると表示されます。
  2. 制約を展開します For each Employee-Day combination , number of associated Employee-Shift assignments is less than or equal to 1

結果

従業員と日の組み合わせの制約が拡張されました

この制約は、従業員と日をキーワード associated と結合して、式が従業員と日の両方にわたって繰り返されるようにします。 従業員と日にちの組み合わせのうちの従業員が、従業員シフト割り当ての従業員にマップされていることが分かります。 従業員と日にちの組み合わせのうちの日にちも、割り当てられたシフトの日プロパティーにマップされています。 したがって、組み合わせは正しく自動的に処理されます。

この複数コンセプト反復では、異なるコンセプトを結合するルールの新しいグループを指定できます。

カスタム決定の定義

このタスクについて

待機義務も割り当てる必要があるとします。 従業員をオンコールの職務に割り当てる目的で別のモデルを作成することはできますが、2 つのモデル間の依存関係ルールを記述することはできません。 この例で示すように、既存のモデルにカスタム決定を追加することにより、シフト割り当てと待機義務の間の依存関係を定義できます。 ここで、カスタム決定は OnCallDutiesという名前です。

手順

カスタム決定を定義するには、以下のステップを実行します。

  1. AssignmentWithOnCallDuties シナリオのモデル設計を表示するには、 モデルの作成 をクリックします。
    シフト割り当て式を表示する「モデルの作成」ビュー

    カスタム決定 OnCallDuties は、2 番目の目的で使用されます。 この目的により、従業員の間で待機義務の回数が偏らないようにします。

    制約 待機中の職務制約 は、「日」テーブルにリストされている待機勤務の要件が満たされていることを確認します。

    以下のステップは、このカスタム決定 OnCallDuties がどのように定義されたかを示しています。

  2. 「設定」 ペインを開き、 「意思決定の視覚化と編集 (Visualize and edit decisions)」true に設定されている (または、デフォルトの false に設定されている場合は true に設定されている) ことを確認します。

    この設定により、 「決定」 タブが 「モデルに追加」 ウィンドウに追加されます。

    「モデルに追加」ペインの「決定」タブに 2 つのインテントが表示されている

    ここでは、 OnCallDuty が割り当て決定 (待機中の職務に従業員を割り当てる) として指定されていることを確認できます。 その 2 つのディメンションは、データ・テーブル Day および Employeeへの参照によって定義されます。 つまり、このモデルによって待機義務も従業員に割り当てられます。 従業員シフト割り当ての決定は、元のインテントから指定されます。

  3. オプション: 「[文書化する]」 フィールドに、 OnCallDuty を説明する独自のテキストを入力します。
  4. オプション: 「決定」 タブで独自の決定を作成するには、 「名前の入力」をクリックし、名前を入力して Enter キーを押します。
    その名前で新しい意思決定 (インテント) が作成され、いくつかの強調表示されたフィールドがドロップダウン・メニューを使用して入力されます。 例えば、 デシジョン・タイプとして 「割り当て」 を選択すると、2 つのディメンションが作成されます。 割り当てでは少なくとも 1 つを何かに割り当てる必要があるため、少なくとも 2 つのディメンションを定義する必要があります。 表の選択 フィールドを使用してディメンションを定義します。

結果

インテントから推測される意思決定のみを使用するように制限されなくなりました。 拡張設定と意思決定タブを使用して、独自のカスタム意思決定を定義できるようになりました。ここで、意思決定タイプとそのディメンション (データ・テーブルまたは列) を選択できます。 その後、新しく定義した意思決定を使用する新しいルールと目標を構成できます。

論理制約の使用

このタスクについて

従業員が休暇中のときは待機義務が割り当てられないようにしたいとします。 そのためには、以下のように論理制約を使用します。

手順

論理制約を使用するには:

  1. 制約を確認する 論理制約の提案
    この制約により、従業員と日の組み合わせごとに、関連付けられた割り当てが存在しない場合 (例えば、従業員がその日の休暇に入っている場合)、その日にその従業員にオンコールの職務が割り当てられないことが保証されます。 この論理制約を定義するために if...then キーワードを使用することに注意してください。
  2. オプション: 候補を検索して、他の論理制約をモデルに追加します。

結果

この制約は、従業員の割り当てを、待機義務があるシフトにリンクします。 別のモデルを使用すると、元のシフト割り当て用に 1 つ、待機中の職務用にもう 1 つのモデルを使用すると、このリンクを実現できません。

論理制約を associated キーワードと一緒に使用することにより、ある制約が適用される場合に別の制約も適用されるように指定できます。 複雑な結合式を使用しなくても、参照している概念の間に必要な論理的接続が自動的に行われます。

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細