راه حل تزریق شده در درخواست شامل اطلاعاتی در مورد اینکه کدام بازدیدها باید محدود شوند و چگونه باید محدود شوند.
| نمایندگی JSON |
|---|
{ "routes": [ { object ( |
| فیلدها | |
|---|---|
routes[] | مسیرهای محلول برای تزریق برخی از مسیرها ممکن است از راه حل اصلی حذف شوند. مسیرها و محموله های نادیده گرفته شده باید مفروضات اعتبار اولیه فهرست شده برای |
skippedShipments[] | محموله های محلول برای تزریق نادیده گرفته شده است. ممکن است برخی از راه حل اصلی حذف شوند. قسمت |
constraintRelaxations[] | برای گروه های صفر یا چند وسیله نقلیه، زمان و میزان کاهش محدودیت ها را مشخص می کند. اگر این فیلد خالی باشد، تمام مسیرهای غیرخالی وسایل نقلیه کاملاً محدود می شوند. |
محدودیت آرامش
برای گروهی از وسایل نقلیه، مشخص میکند که محدودیتهای بازدید در چه آستانهای کاهش مییابند و تا چه سطحی. محموله های فهرست شده در قسمت skipped_shipment محدود به نادیده گرفتن هستند. یعنی نمی توان آنها را اجرا کرد.
| نمایندگی JSON |
|---|
{
"relaxations": [
{
object ( |
| فیلدها | |
|---|---|
relaxations[] | تمام محدودیتهای بازدید که برای بازدید از مسیرهایی با وسایل نقلیه در |
vehicleIndices[] | شاخصهای وسیله نقلیه را مشخص میکند که اگر |
آرامش
اگر relaxations خالی باشد، زمان شروع و ترتیب همه بازدیدها در routes کاملاً محدود است و هیچ بازدید جدیدی نمی تواند در آن مسیرها درج یا اضافه شود. همچنین، زمان شروع و پایان یک وسیله نقلیه در routes کاملاً محدود است، مگر اینکه وسیله نقلیه خالی باشد (یعنی هیچ بازدیدی نداشته باشد و در مدل usedIfRouteIsEmpty روی false تنظیم شده باشد).
relaxations(i).level سطح آرامش محدودیت اعمال شده برای بازدید #j را مشخص می کند که:
-
route.visits(j).start_time >= relaxations(i).threshold_timeAND -
j + 1 >= relaxations(i).threshold_visit_count
به طور مشابه، استارت وسیله نقلیه تا relaxations(i).level اگر برآورده شود:
-
vehicleStartTime >= relaxations(i).threshold_timeAND -
relaxations(i).threshold_visit_count == 0و انتهای وسیله نقلیه بهrelaxations(i).levelرها می شود اگر برآورده شود: -
vehicleEndTime >= relaxations(i).threshold_timeAND -
route.visits_size() + 1 >= relaxations(i).threshold_visit_count
برای اعمال سطح آرامش در صورتی که بازدیدی با thresholdVisitCount یا thresholdTime مطابقت داشته باشد، دو relaxations با همان level اضافه کنید: یکی با مجموعه فقط thresholdVisitCount و دیگری با تنظیم فقط thresholdTime . اگر یک بازدید شرایط relaxations متعدد را برآورده کند، آرام ترین سطح اعمال می شود. در نتیجه، از شروع وسیله نقلیه تا بازدیدهای مسیر تا پایان وسیله نقلیه، سطح آرامش بیشتر می شود: یعنی با پیشرفت مسیر، سطح آرامش کاهش نمی یابد.
زمان و توالی بازدیدهای مسیری که شرایط آستانه هر relaxations را برآورده نمی کند کاملاً محدود است و هیچ بازدیدی ممکن است در این توالی درج نشود. همچنین، اگر شروع یا پایان وسیله نقلیه شرایط آرامش را برآورده نکند، زمان ثابت است، مگر اینکه وسیله نقلیه خالی باشد.
| نمایندگی JSON |
|---|
{
"level": enum ( |
| فیلدها | |
|---|---|
level | سطح آرامش محدودیت که زمانی اعمال میشود که شرایط در |
thresholdTime | زمانی که از RFC 3339 استفاده می کند، که در آن خروجی تولید شده همیشه با Z نرمال می شود و از 0، 3، 6 یا 9 رقم کسری استفاده می کند. افست های غیر از "Z" نیز پذیرفته می شود. مثالها: |
thresholdVisitCount | تعداد بازدیدهایی که ممکن است اگر |
سطح
سطوح مختلف آرامش محدودیت را بیان میکند که برای یک بازدید اعمال میشود و آنهایی که پس از آن زمانی که شرایط آستانه را برآورده میکنند، اعمال میشوند.
شمارش زیر به ترتیب افزایش آرامش است.
| Enums | |
|---|---|
LEVEL_UNSPECIFIED | سطح آرامش پیشفرض ضمنی: هیچ محدودیتی کاهش نمییابد، یعنی همه بازدیدها کاملاً محدود میشوند. این مقدار نباید به صراحت در |
RELAX_VISIT_TIMES_AFTER_THRESHOLD | زمان شروع بازدید و زمان شروع/پایان وسیله نقلیه آرام خواهد بود، اما هر بازدید به همان وسیله نقلیه محدود میشود و توالی بازدید باید رعایت شود: هیچ بازدیدی بین آنها یا قبل از آنها نمیتواند وارد شود. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD | مانند RELAX_VISIT_TIMES_AFTER_THRESHOLD ، اما توالی بازدید نیز آرام است: بازدیدها فقط توسط این وسیله نقلیه قابل انجام است، اما به طور بالقوه ممکن است انجام نشوند. |
RELAX_ALL_AFTER_THRESHOLD | مانند RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD ، اما وسیله نقلیه نیز آرام است: بازدیدها در زمان آستانه یا بعد از آن کاملا رایگان هستند و ممکن است به طور بالقوه انجام نشوند. |