Solution
Solutionエンティティは、統計、ツアー、未割り当てのジョブの 3 つの主要な部分で構成される車両ルーティングProblems Solutionを提供します。
統計情報
統計は、 1 つ以上のツアーの統計情報を表し、次のプロパティで構成されています。
-
cost: 抽象単位で表され、小数点以下 3 桁に四捨五入された合計コスト。
"cost": 54.459
-
distance: 総走行距離 ( メートル単位 )
"distance": 35277
-
duration: 合計期間 ( 秒 )
duration": 5286
-
times: 運転、ジョブの処理、時間帯の開始待ち、休憩に費やした時間
{
"times": {
"driving": 5106,
"serving": 180,
"waiting": 0,
"break": 0
}
}
Solutionの統計情報の duration プロパティは、その特定のSolutionのすべてのツアー期間の合計を表します。
ツアーのリスト
ツアーリストの各項目は、使用済みの車両および割り当てられたジョブに関する詳細情報を提供します。
-
TypeID:車両タイプ ID を指定
"typeId": "myVehicle"
-
vehicleId:使用される車両の具体的な ID を指定 TypeID とアンダースコアで区切られた連番で構成されています
vehicleId": "myVehicle_1"
-
stops: 停止のリストを指定
-
statistic:ツアーの統計情報を指定
-
shiftIndex:ツアー中に使用する車両シフトインデックスを指定
停車地
停車地では、特定の時間に特定の場所で実行されるアクティビティのリストを指定します。 次のプロパティで構成されています。
-
location: 緯度 / 経度で表された停車地点
"location": {"lat": 52.52568, "lng": 13.45345}
-
time: 停車地の到着予定時刻と出発時刻を指定
{
"time": {
"arrival": "2020-07-04T09:19:01Z",
"departure": "2020-07-04T09:19:01Z"
}
}
-
load: 停車地出発後の車両積載量を指定
"load": [1]
-
activities: 停車地で実行するアクティビティのリストを指定
注意解決結果の times
は、問題の定式化で使用された時間オフセットに関係なく、常に UTC で返されます。
アクティビティ
一般に、アクティビティでは、特定の場所および時間に実行する予定のタスクを指定します。 次のプロパティで構成されています。
-
JobID:ジョブまたはマーカーの ID (休憩、出発、到着など)
jobId": "myJob"
-
type: アクティビティタイプを指定出発、到着、休憩、集荷、配達のいずれかの値を指定可能
"type": "delivery"
-
jobTag ( 任意 ): 対応するジョブの場所で指定されたユーザー定義の値
"jobTag": "place 1"
-
location ( 任意 ) :緯度 / 経度で表されるアクティビティの場所。 親の停車地で定義されているものと同じ場合は省略されます
"location": {"lat": 52.52568, "lng": 13.45345}
-
time ( 任意 ): 予想される開始時間 / 終了時間を指定 停車地にアクティビティが 1 つしかない場合は省略されます
注意解決結果の times
は、問題の定式化で使用された時間オフセットに関係なく、常に UTC で返されます。
未割り当てのジョブのリスト
オプションの未割り当てジョブリストには、特定の制約により割り当てられないジョブが含まれています。 各アイテムは、ジョブ ID と割り当て解除の理由で構成されています。
{
"unassigned": [
{
"jobId": "myJob",
"reasons": [
{
"code": "MAX_DISTANCE_CONSTRAINT",
"description": "cannot be assigned due to max distance constraint of vehicle"
}
]
}
]
}
例
{
"statistic": {
"cost": 54.459916,
"distance": 35277,
"duration": 5286,
"times": {
"driving": 5106,
"serving": 180,
"waiting": 0,
"break": 0
}
},
"tours": [
{
"vehicleId": "myVehicle_1",
"typeId": "myVehicle",
"stops": [
{
"location": {"lat": 52.52568, "lng": 13.45345},
"time": {
"arrival": "2020-07-04T09:19:01Z",
"departure": "2020-07-04T09:19:01Z"
},
"load": [1],
"activities": [
{
"jobId": "departure",
"type": "departure"
}
]
},
{
"location": {"lat": 52.46642, "lng": 13.28124},
"time": {
"arrival": "2020-07-04T10:00:00Z",
"departure": "2020-07-04T10:03:00Z"
},
"load": [0],
"activities": [
{
"jobId": "myJob",
"type": "delivery"
}
]
},
{
"location": {"lat": 52.52568, "lng": 13.45345},
"time": {
"arrival": "2020-07-04T10:47:07Z",
"departure": "2020-07-04T10:47:07Z"
},
"load": [0],
"activities": [
{
"jobId": "arrival",
"type": "arrival"
}
]
}
],
"statistic": {
"cost": 54.459916,
"distance": 35277,
"duration": 5286,
"times": {
"driving": 5106,
"serving": 180,
"waiting": 0,
"break": 0
}
}
}
]
}