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. 開いた 「最適化問題の求解 (Solve optimization problems)」 ウィンドウで、 「ローカル・ファイル」 をクリックします。
  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. 「設定」 ペインを開き、 「意思決定の視覚化と編集」true に設定されている (または、デフォルトの false に設定されている場合は true に設定されている) ことに注意してください。

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

    2 つのインテントが表示された「モデルへの追加」ペインの「意思決定」タブ

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

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

結果

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

論理制約の使用

このタスクについて

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

手順

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

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

結果

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

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

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