ブロックリファレンス

BLOCKS Reference

最適化

割当て最適化(変数指定)

概要

このブロックは、変数を使用して動的にデータを指定できるリソースからコンテナへの最適な割り当てを自動で計算する割り当て最適化ブロックです。配送車両への荷物の割り当て、作業から人への割り当て、設備からリソースの割り当てなど、様々なビンパッキング問題に対応できます。従来の割当て最適化ブロックと同様に効率の向上やコスト削減を実現しながら、変数によるデータ指定により、より柔軟で動的な最適化計画作成を可能にします。

例えば配送領域では、配送場所(荷物)を複数の配送車両に最適に振り分けることで、車両の積載容量を最大限活用しつつ、配送コストを最小化した配送計画を作成します。作業分担では、作業項目を適切な人員に割り当てることで、スキルや稼働状況を考慮した効率的な業務計画を立案できます。変数を使用することで、実行時にデータを動的に指定でき、複数のデータソースや実行環境に対応できます。

内部では、状況に応じて最適な計算エンジン(D-Wave、SQBM+、Amplify AEなど)が自動的に選択され、量子コンピューティング技術や先進的なアルゴリズムを用いて高速に最適化処理を行います。利用者は技術的な詳細を意識することなく、最適な割り当て計画のみが簡単に得られます。

プロパティ

プロパティ名 説明
ブロック名

フローの中で、このブロックを識別するための表示名を設定します。例えば、「配送ルート最適化(変数指定)」、「動的荷物割当計画」、「作業員タスク最適配分」、「設備リソース動的割当」など、分かりやすい名前を付けることで、フロー全体の可読性が向上します。

配送場所データが保存されている変数

配送場所(荷物)に関する情報が格納された変数を指定します。(必須)

指定した変数には、「location_id(配送場所ID)」、「location_name(配送場所名)」、「baggage(積み荷の量)」のプロパティを持つオブジェクトの配列が格納されている必要があります。距離制約を使用する場合は、「latitude(緯度)」、「longitude(経度)」も必要になります。

table_chart テーブルスキーマを表示 arrow_downward

配送車データが保存されている変数

配送車両に関する情報が格納された変数を指定します。(必須)

指定した変数には、「container_id(配送車ID)」、「container_name(配送車名)」、「capacity(積載可能量)」、「cost(積載コスト)」のプロパティを持つオブジェクトの配列が格納されている必要があります。

table_chart テーブルスキーマを表示 arrow_downward

配送場所、配送車の関連データが保存されている変数

配送場所と配送車の関連情報が格納された変数を指定します。(必須)

指定した変数には、「location_id(配送場所ID)」、「container_id(配送車ID)」、「cost(関連のコスト)」、「enabled(有効化フラグ)」のプロパティを持つオブジェクトの配列が格納されている必要があります。

table_chart テーブルスキーマを表示 arrow_downward

カテゴリと配送場所の関連データが保存されている変数

カテゴリと配送場所の関連情報が格納された変数を指定します。

カテゴリ別の制約を使用する場合に設定が必要です。指定した変数には、「category_id(カテゴリID)」、「category_sub_id(サブカテゴリID)」、「location_id(配送場所ID)」のプロパティを持つオブジェクトの配列が格納されている必要があります。

table_chart テーブルスキーマを表示 arrow_downward

同じ配送車に割り当てたい関連データが保存されている変数

同じサブカテゴリの配送場所を同じ配送車に割り当てたい場合の設定が格納された変数を指定します。

指定した変数には、「category_id(カテゴリID)」、「category_sub_id(サブカテゴリID)」、「weight(重み)」のプロパティを持つオブジェクトの配列が格納されている必要があります。重みが大きいほど、同じサブカテゴリの配送場所が同じ配送車に割り当てられやすくなります。

table_chart テーブルスキーマを表示 arrow_downward

同じ配送車に割り当てたくない関連データが保存されている変数

異なるサブカテゴリの配送場所を同じ配送車に割り当てたくない場合の設定が格納された変数を指定します。

指定した変数には、「category_id(カテゴリID)」、「category_sub_id(サブカテゴリID)」、「pair_category_sub_id(ペアサブカテゴリID)」、「weight(重み)」のプロパティを持つオブジェクトの配列が格納されている必要があります。

table_chart テーブルスキーマを表示 arrow_downward

配送場所の依存関係のデータが保存されている変数

配送場所間の依存関係が格納された変数を指定します。

特定の配送場所を配送する前に、別の配送場所を先に配送する必要がある場合に使用します。指定した変数には、「location_id(配送場所ID)」、「previous_location_id(前の配送場所ID)」のプロパティを持つオブジェクトの配列が格納されている必要があります。

table_chart テーブルスキーマを表示 arrow_downward

パラメータが保存されている変数

最適化計算の挙動や優先順位を調整するためのパラメータが格納された変数を指定します。(必須)

指定した変数には、最適化処理の制約やソルバー設定などの情報を持つオブジェクトの配列が格納されている必要があります。

table_chart テーブルスキーマを表示 arrow_downward

結果を格納する変数

最適化計算の結果を格納する変数を指定します。(必須)

この変数に、配送場所と配送車の最適な割り当て結果がオブジェクトの配列として保存されます。

table_chart テーブルスキーマを表示 arrow_downward

割当て最適化実行に関する情報を格納する変数

最適化実行に関する詳細情報を格納する変数を指定します。

この変数に、実行時間、使用したソルバー、エネルギー値などの実行情報がオブジェクトの配列として保存されます。

table_chart テーブルスキーマを表示 arrow_downward

GCPサービスアカウント

最適化処理を実行するために、Google Cloud Platform(GCP)のサービスアカウントを選択します。処理に必要な権限を持つアカウントを設定してください。

実行に関する情報を格納するテーブル

最適化計算の実行に関する詳細な情報(メタデータ)を格納するBigQueryテーブル名を直接指定します。

指定しない場合、これらのメタデータは保存されません。実行にかかった時間や計算の評価値(エネルギー値)など、処理の詳細情報を記録・分析したい場合に設定します。事前に作成する必要はなく、指定したテーブルがなければ、自動作成されます。既に存在する場合は、追加されます。

table_chart テーブルスキーマを表示 arrow_downward

実行結果を格納するテーブル

最適化計算の結果(具体的な割当計画)を格納するBigQueryテーブル名を直接指定します。

指定しない場合、計算結果は保存されません。最適化結果を保存し、他の処理ブロックから参照したり、後で分析したりする場合は必ず設定してください。事前に作成する必要はなく、指定したテーブルがなければ、自動作成されます。既に存在する場合は、追加されます。

table_chart テーブルスキーマを表示 arrow_downward

ジョブのラベル名

実行するジョブに付与するラベル名を設定します。

複数の最適化ジョブを並行実行する場合の識別や、結果の管理に使用されます。

ブロックメモ

このブロックに関するメモやコメントを自由に入力できます。フローの他のメンバーへの情報共有や、処理内容の備忘録として活用できます。

実行モード

最適化計算の実行モードを選択します。

  • 通常実行:標準的な最適化計算を実行する。

テーブルスキーマ

1. 配送場所データが保存されている変数のスキーマ

配送場所(荷物)に関する情報を格納するテーブルです。

カラム名 必須 説明
location_id STRING 配送場所を表すID
location_name STRING 配送場所の名前
latitude FLOAT 条件 緯度(距離制約を使用する場合のみ必須)
longitude FLOAT 条件 経度(距離制約を使用する場合のみ必須)
baggage INTEGER 積み荷の量
group_id STRING 条件 同一コンテナ割当て、または、コンテナグループごとの荷物グループ数最小化の制約を利用する場合に必須

settings プロパティとの関連を確認 arrow_upward

2. 配送車データが保存されている変数のスキーマ

配送車両に関する情報を格納するテーブルです。

カラム名 必須 説明
container_id STRING 配送車を表すID
container_name STRING 配送車の名前
capacity INTEGER 条件 積載可能量(assign_all_item.type = 'capacity' または assign_item_weight_to_container_capacity 制約を利用する場合に必須)
cost FLOAT 条件 積載コスト(container_priority.type = 'uniform' 制約を利用する場合に必須)
group_id STRING 条件 コンテナグループごとの荷物グループ数最小化制約を利用する場合に必須
sequence_no INTEGER 配送車の順序

settings プロパティとの関連を確認 arrow_upward

3. 配送場所、配送車の関連データが保存されている変数のスキーマ

配送場所と配送車の関連情報を格納するテーブルです。

カラム名 必須 説明
location_id STRING 配送場所ID
container_id STRING 配送車ID
cost FLOAT 条件 関連のコスト(container_priority.type = 'by_item' 制約を利用する場合に必須)
enabled BOOLEAN 有効化フラグ

settings プロパティとの関連を確認 arrow_upward

4. カテゴリと配送場所の関連データが保存されている変数のスキーマ

カテゴリと配送場所の関連情報を格納するテーブルです。

カラム名 必須 説明
category_id STRING カテゴリID
category_sub_id STRING サブカテゴリID
location_id STRING 配送場所ID

settings プロパティとの関連を確認 arrow_upward

5. 同じ配送車に割り当てたい関連データが保存されている変数のスキーマ

同じ配送車に割り当てたい関連データを格納するテーブルです。

カラム名 必須 説明
category_id STRING カテゴリID
category_sub_id STRING サブカテゴリID
weight FLOAT 重み(大きいほど同じ配送車に割り当てられやすくなる)

settings プロパティとの関連を確認 arrow_upward

6. 同じ配送車に割り当てたくない関連データが保存されている変数のスキーマ

同じ配送車に割り当てたくない関連データを格納するテーブルです。

カラム名 必須 説明
category_id STRING カテゴリID
category_sub_id STRING サブカテゴリID
pair_category_sub_id STRING ペアサブカテゴリID
weight FLOAT 条件 重み(constraint_type='constrained' が指定された場合はnullを許容)

settings プロパティとの関連を確認 arrow_upward

7. 配送場所の依存関係のデータが保存されている変数のスキーマ

配送場所間の依存関係を格納するテーブルです。

カラム名 必須 説明
location_id STRING 配送場所ID
previous_location_id STRING 前の配送場所ID

settings プロパティとの関連を確認 arrow_upward

8. パラメータが保存されている変数のスキーマ

最適化計算の挙動や優先順位を調整するためのパラメータが格納されたオブジェクト(単数)またはオブジェクトの配列(複数)を変数に指定します。各パラメータの詳細については、割当て最適化のドキュメントをご参照ください。

注: coeffパラメータは、null(未設定)で制約を使用しない、0でパラメータを自動設定、0以外でその値をパラメータとして使用、という動作をします。

カラム名 必須 説明
label STRING 複数同時実行時にラベルに付加されます。カラムが存在しない場合は index が自動で付与されます。
assign_all_item RECORD 全ての荷物を割り当てる制約。詳細はこちら
container_capacity_limit RECORD assign_all_item.type = 'capacity'の時に必須となる、コンテナ容量に関する制約。詳細はこちら
container_priority RECORD コンテナの優先度制約。詳細はこちら
item_distance FLOAT Locationの距離が近いものを同じコンテナに詰めるようにする制約。
minimize_containers_by_item FLOAT 荷物毎のコンテナの数を少なくする制約。
assign_equally_item_weight_to_container FLOAT 各荷物をコンテナに均一に割り当てる制約。
assign_all_items_to_container_or_none FLOAT コンテナに割り当て可能な荷物を、全て割り当てるか、全く割り当てないかのどちらかにする制約。
assign_same_group_item_to_same_container FLOAT 同じグループの荷物を同じコンテナに割り当てる制約。
minimize_item_group_num_by_container_group FLOAT 同一グループコンテナに割り当てる荷物グループ数の最小化制約。
assign_same_category_item_to_same_container FLOAT 同一カテゴリの荷物をなるべく同じコンテナに割り当てる制約。
assign_specified_category_item_to_different_container RECORD 同一カテゴリの荷物を異なるコンテナに割り当てる制約。
assign_item_weight_to_container_capacity FLOAT 各荷物をコンテナごとの容量に一致するように割り当てる制約。
assign_item_by_container_sequence RECORD 各荷物に設定した前荷物を、コンテナの順序に従って割り当てる制約。
solver_options RECORD ソルバー固有の設定。詳細はこちら
amplify_token STRING 条件 Amplify AEソルバーを利用する場合に必須。

settings プロパティとの関連を確認 arrow_upward

9. 結果を格納する変数のスキーマ

最適化計算の結果を格納するテーブルです。1行が1つのコンテナへの割当て結果に対応します。

カラム名 必須 説明
job_id STRING 実行JobのID
energy FLOAT 結果のエネルギー値
solution_index INTEGER 解のインデックス
container_id STRING 配送車(コンテナ)のID
container_index INTEGER 配送車(コンテナ)のインデックス
locations RECORD(繰り返し) このコンテナに割り当てられた配送場所(荷物)のリスト
locations.location_id STRING 配送場所のID
locations.location_index INTEGER 配送場所のインデックス
locations.lat FLOAT 緯度
locations.lng FLOAT 経度
locations.baggage INTEGER 積み荷の量

settings プロパティとの関連を確認 arrow_upward

10. 割当て最適化実行に関する情報を格納する変数のスキーマ

最適化実行に関する詳細情報を格納するテーブルです。

カラム名 必須 説明
job_id STRING 実行JobのID
optimization_type STRING 最適化のタイプ
solver_type INTEGER 使用したソルバーのタイプ
solutions RECORD(繰り返し) 解の情報リスト
total_qubit_num INTEGER 使用したqubit数
created_at TIMESTAMP 作成日時

settings プロパティとの関連を確認 arrow_upward

11. 実行に関する情報を格納するテーブルのスキーマ

最適化計算の実行に関する詳細な情報(メタデータ)を格納するテーブルです。

カラム名 必須 説明
job_id STRING 最適化処理を実行した際のJob ID
optimization_type STRING 実行された最適化のタイプ(この場合は"binpacking"など)
solver_type INTEGER 実際に計算に使用された計算エンジン(ソルバー)の種類を示すコード
solutions RECORD、繰り返し 得られた解のリスト(複数の解とその評価値が含まれます)
solutions.solution_index INTEGER 解のインデックス番号
solutions.energy FLOAT 各解に対応する評価値(エネルギー値)
total_qubit_num INTEGER 計算に使用された論理的な変数(qubit)の総数。問題の複雑さの目安となります。
qubo RECORD 最適化問題を数式で表現したQUBO(Quadratic Unconstrained Binary Optimization)モデルに関する情報。専門的な分析に用います。
qubo.maximum_coeff_ratio FLOAT QUBOモデル内の係数の最大値と最小値の比率。解の精度に関わる指標です。
qubo.max FLOAT QUBOモデル内の係数の最大値。
qubo.min FLOAT QUBOモデル内の係数の最小値。
qubo.nonzero_num INTEGER QUBOモデル内でゼロではない係数の数。
qubo.density FLOAT QUBOモデル内でゼロではない係数の数の割合。
solver_response RECORD、繰り返し 計算エンジンからの応答データ。専門的な分析に用います。
constraints RECORD、繰り返し 設定された各制約条件がどの程度満たされたかなどの詳細情報。
created_at TIMESTAMP この実行データが作成された日時。

settings プロパティの設定方法を確認 arrow_upward

12. 実行結果を格納するテーブルのスキーマ

最適化計算の結果(具体的な割当計画)を格納するテーブルです。1行が1つのコンテナへの割当て結果に対応します。

カラム名 必須 説明
job_id STRING 実行された最適化ジョブのID
energy FLOAT 計算結果の評価値(エネルギー値)。値が小さいほど、制約条件をよく満たした良い解であることを示します。
solution_index INTEGER 複数の解が得られた場合の、解のインデックス番号
container_id STRING 配送車(コンテナ)のID
container_index INTEGER 配送車(コンテナ)のインデックス
locations RECORD、繰り返し このコンテナに割り当てられた配送場所(荷物)のリスト
locations.location_id STRING 配送場所のID
locations.location_index INTEGER 配送場所のインデックス
locations.lat FLOAT 緯度
locations.lng FLOAT 経度
locations.baggage INTEGER 積み荷の量

settings プロパティの設定方法を確認 arrow_upward

この情報は役に立ちましたか?