راه حل تزریق شده در درخواست شامل اطلاعاتی در مورد اینکه کدام بازدیدها باید محدود شوند و چگونه باید محدود شوند.
نمایندگی 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_time
AND -
j + 1 >= relaxations(i).threshold_visit_count
به طور مشابه، استارت وسیله نقلیه تا relaxations(i).level
آرام می شود، اگر برآورده شود:
-
vehicleStartTime >= relaxations(i).threshold_time
AND -
relaxations(i).threshold_visit_count == 0
و انتهای وسیله نقلیه بهrelaxations(i).level
رها می شود اگر برآورده شود: -
vehicleEndTime >= relaxations(i).threshold_time
AND -
route.visits_size() + 1 >= relaxations(i).threshold_visit_count
برای اعمال سطح آرامش در صورتی که بازدیدی با thresholdVisitCount
یا thresholdTime
مطابقت داشته باشد، دو relaxations
با همان level
اضافه کنید: یکی با مجموعه فقط thresholdVisitCount
و دیگری با تنظیم فقط thresholdTime
. اگر یک بازدید شرایط relaxations
متعدد را برآورده کند، آرام ترین سطح اعمال می شود. در نتیجه، از شروع وسیله نقلیه تا بازدیدهای مسیر تا پایان وسیله نقلیه، سطح آرامش بیشتر می شود: یعنی با پیشرفت مسیر، سطح آرامش کاهش نمی یابد.
زمان و توالی بازدیدهای مسیری که شرایط آستانه هر relaxations
را برآورده نمی کند کاملاً محدود است و هیچ بازدیدی ممکن است در این توالی درج نشود. همچنین، اگر شروع یا پایان وسیله نقلیه شرایط آرامش را برآورده نکند، زمان ثابت است، مگر اینکه وسیله نقلیه خالی باشد.
نمایندگی JSON |
---|
{
"level": enum ( |
فیلدها | |
---|---|
level | سطح آرامش محدودیت که زمانی اعمال میشود که شرایط در |
thresholdTime | زمانی که مهر زمانی در قالب RFC3339 UTC "Zulu"، با وضوح نانوثانیه و حداکثر نه رقم کسری. مثالها: |
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 ، اما وسیله نقلیه نیز آرام است: بازدیدها در زمان آستانه یا بعد از آن کاملا رایگان هستند و ممکن است به طور بالقوه انجام نشوند. |