OptimizeToursResponse

پاسخ پس از حل یک مشکل بهینه سازی تور شامل مسیرهایی که هر وسیله نقلیه دنبال می کند، محموله هایی که نادیده گرفته شده اند و هزینه کلی راه حل.

نمایندگی JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
فیلدها
routes[]

object ( ShipmentRoute )

مسیرهای محاسبه شده برای هر وسیله نقلیه؛ مسیر i-ام مربوط به i-امین وسیله نقلیه در مدل است.

requestLabel

string

کپی OptimizeToursRequest.label ، اگر برچسبی در درخواست مشخص شده باشد.

skippedShipments[]

object ( SkippedShipment )

لیست تمام محموله‌های نادیده گرفته شده

validationErrors[]

object ( OptimizeToursValidationError )

فهرستی از تمام خطاهای اعتبار سنجی که توانستیم به طور مستقل شناسایی کنیم. توضیحات "MULTIPLE ERRORS" را برای پیام OptimizeToursValidationError ببینید. به جای خطا، این شامل اخطارهایی در حالت solvingMode DEFAULT_SOLVE است.

metrics

object ( Metrics )

مدت زمان، مسافت و معیارهای استفاده برای این راه حل.

OptimizeToursValidationError

خطا یا اخطاری را که هنگام تأیید اعتبار OptimizeToursRequest با آن مواجه می شود، توصیف می کند.

نمایندگی JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
فیلدها
code

integer

یک خطای اعتبارسنجی توسط جفت ( code ، displayName ) که همیشه وجود دارد، تعریف می‌شود.

فیلدهای زیر این بخش زمینه بیشتری در مورد خطا ارائه می دهند.

خطاهای چندگانه : هنگامی که چندین خطا وجود دارد، فرآیند اعتبارسنجی سعی می کند چندین مورد از آنها را خروجی دهد. بسیار شبیه یک کامپایلر، این یک فرآیند ناقص است. برخی از خطاهای اعتبارسنجی "کشنده" خواهند بود، به این معنی که کل فرآیند اعتبار سنجی را متوقف می کنند. این مورد برای خطاهای displayName="UNSPECIFIED" در میان سایر موارد است. برخی از خطاها ممکن است باعث شود که فرآیند اعتبارسنجی از سایر خطاها رد شود.

STABILITY : code و displayName باید بسیار پایدار باشند. اما کدها و نام‌های نمایشی جدید ممکن است در طول زمان ظاهر شوند، که ممکن است باعث شود یک درخواست داده شده (نامعتبر) یک جفت متفاوت ( code ، displayName ) ارائه دهد زیرا خطای جدید خطای قدیمی را پنهان کرده است. به عنوان مثال، "خطاهای متعدد" را ببینید.

displayName

string

نام نمایش خطا

fields[]

object ( FieldReference )

زمینه خطا ممکن است شامل 0، 1 (بیشتر اوقات) یا بیشتر فیلد باشد. به عنوان مثال، مراجعه به وسیله نقلیه شماره 4 و اولین پیکاپ محموله شماره 2 را می توان به صورت زیر انجام داد:

fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }

البته توجه داشته باشید که کاردینالیته fields نباید برای یک کد خطای مشخص تغییر کند.

errorMessage

string

رشته قابل خواندن توسط انسان که خطا را توصیف می کند. یک نگاشت 1:1 بین code و errorMessage وجود دارد (وقتی کد != "نامشخص" است).

پایداری : پایدار نیست: پیام خطای مرتبط با code معین ممکن است در طول زمان تغییر کند (امیدواریم که آن را روشن کنیم). لطفاً به جای آن به displayName و code تکیه کنید.

offendingValues

string

ممکن است حاوی مقدار(های) فیلد(ها) باشد. این همیشه در دسترس نیست. شما مطلقاً نباید به آن تکیه کنید و فقط برای اشکال زدایی مدل دستی از آن استفاده کنید.

مرجع فیلد

زمینه ای را برای خطای اعتبارسنجی مشخص می کند. یک FieldReference همیشه به یک فیلد معین در این فایل اشاره دارد و از ساختار سلسله مراتبی یکسانی پیروی می کند. به عنوان مثال، ممکن است عنصر شماره 2 از startTimeWindows وسیله نقلیه شماره 5 را با استفاده از:

name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }

با این حال، ما نهادهای سطح بالا مانند OptimizeToursRequest یا ShipmentModel را حذف می کنیم تا از شلوغ شدن پیام جلوگیری کنیم.

نمایندگی JSON
{
  "name": string,
  "subField": {
    object (FieldReference)
  },

  // Union field index_or_key can be only one of the following:
  "index": integer,
  "key": string
  // End of list of possible types for union field index_or_key.
}
فیلدها
name

string

نام رشته، به عنوان مثال، "وسایل نقلیه".

subField

object ( FieldReference )

در صورت نیاز، زیر فیلد تودرتوی بازگشتی.

فیلد اتحادیه index_or_key .

index_or_key فقط می تواند یکی از موارد زیر باشد:

index

integer

فهرست فیلد در صورت تکرار.

key

string

اگر فیلد نقشه است، کلید بزنید.

معیارها

معیارهای کلی، در همه مسیرها جمع آوری شده است.

نمایندگی JSON
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
فیلدها
aggregatedRouteMetrics

object ( AggregatedMetrics )

در مسیرها جمع شده است. هر متریک مجموع (یا حداکثر، برای بارها) در تمام فیلدهای ShipmentRoute.metrics با همان نام است.

skippedMandatoryShipmentCount

integer

تعداد محموله های اجباری حذف شده

usedVehicleCount

integer

تعداد وسایل نقلیه استفاده شده توجه: اگر مسیر وسیله نقلیه خالی باشد و Vehicle.used_if_route_is_empty درست باشد، وسیله نقلیه استفاده شده در نظر گرفته می شود.

earliestVehicleStartTime

string ( Timestamp format)

اولین زمان شروع برای یک وسیله نقلیه دست دوم، که به عنوان حداقل برای همه وسایل نقلیه استفاده شده در ShipmentRoute.vehicle_start_time محاسبه می شود.

مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثال‌ها: "2014-10-02T15:01:23Z" و "2014-10-02T15:01:23.045123456Z" .

latestVehicleEndTime

string ( Timestamp format)

آخرین زمان پایان برای یک وسیله نقلیه کارکرده، که به عنوان حداکثر برای همه وسایل نقلیه استفاده شده ShipmentRoute.vehicle_end_time محاسبه می شود.

مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثال‌ها: "2014-10-02T15:01:23Z" و "2014-10-02T15:01:23.045123456Z" .

costs

map (key: string, value: number)

هزینه راه حل، به تفکیک فیلدهای درخواست مربوط به هزینه. کلیدها مسیرهای اولیه هستند، نسبت به ورودی OptimizeToursRequest، به عنوان مثال "model.shipments.pickups.cost"، و مقادیر کل هزینه تولید شده توسط فیلد هزینه مربوطه هستند که در کل راه حل جمع می شوند. به عبارت دیگر، هزینه‌ها ["model.shipments.picups.cost"] مجموع تمام هزینه‌های برداشت بیش از راه‌حل است. تمام هزینه‌های تعریف‌شده در مدل در اینجا به‌جز هزینه‌های مربوط به TransitionAttributes که فقط به صورت تجمیع شده از سال 2022/01 گزارش شده‌اند، در اینجا گزارش می‌شوند.

totalCost

number

هزینه کل راه حل مجموع تمام مقادیر در نقشه هزینه ها.