সময় জানালা

Time windows are present in `ShipmentModel`, in `Shipment` in the pickups and deliveries objects, and in `Vehicle`.

টাইম উইন্ডো একটি রুটে ইভেন্টের সময় নির্দিষ্ট করে। এই ইভেন্টগুলির মধ্যে একটি ড্রাইভারের রুটের শুরু এবং শেষ, নির্ধারিত পিকআপ এবং ডেলিভারির সময়, বা একটি সম্পূর্ণ রুটের সময়কাল অন্তর্ভুক্ত থাকতে পারে।

টাইম উইন্ডোগুলি উদ্দেশ্যগুলিকে সমর্থন করতে পারে যেমন:

  • নির্দিষ্ট সময়সীমার মধ্যে পিকআপ এবং ডেলিভারি সম্পন্ন করাকে অগ্রাধিকার দিন
  • সামগ্রিক ব্যবসায়িক সময়ের মধ্যে কাজ করার জন্য রুট পরিকল্পনা করুন
  • নির্দিষ্ট সময়সীমার মধ্যে যানবাহন শুরু এবং শেষ রুট নিশ্চিত করুন

গঠন

ডায়াগ্রামে দেখানো হয়েছে, টাইম উইন্ডোগুলি নিম্নরূপ গঠন করা হয়েছে:

  • globalStartTime এবং globalEndTime হল ShipmentModel মডেলের বৈশিষ্ট্য
  • timeWindows এর বৈশিষ্ট্য:
    • Shipment ভিতরে pickups
    • Shipment ভিতরে deliveries
  • startTimeWindows এবং endTimeWindows হল Vehicle বৈশিষ্ট্য।

প্রয়োজনীয় চেকলিস্ট

বৈশিষ্ট্য

নিম্নোক্ত সারণী গ্লোবাল টাইম উইন্ডো বৈশিষ্ট্য বর্ণনা করে।

সম্পত্তি বিন্যাস বর্ণনা
globalStartTime Timestamp যে কোনো অনুষ্ঠানের প্রথমতম সময়।
globalEndTime Timestamp যেকোনো ইভেন্টের জন্য সর্বশেষ সময়।

নিম্নলিখিত টেবিলটি চালান এবং যানবাহনের সময় উইন্ডো বৈশিষ্ট্য বর্ণনা করে।

অভিভাবক সম্পত্তি বিন্যাস বর্ণনা
Shipment.pickups timeWindows TimeWindow বার্তা প্রকারের অ্যারে। একটি চালান পিকআপের জন্য সময়ের ব্যবধান নির্দিষ্ট করে।
Shipment.deliveries timeWindows একটি চালান ডেলিভারির জন্য সময় অন্তর নির্দিষ্ট করে।
Vehicle startTimeWindows একটি গাড়ির অপারেটিং সময়সূচীর জন্য শুরুর সময় নির্দিষ্ট করে।
endTimeWindows একটি গাড়ির অপারেটিং সময়সূচীর জন্য শেষ সময় নির্দিষ্ট করে।

নিম্নলিখিত সারণী একটি TimeWindow বার্তা প্রকারের বৈশিষ্ট্য বর্ণনা করে।

সম্পত্তি বিন্যাস বর্ণনা
startTime স্ট্রিং (RFC3339 UTC "জুলু" ফর্ম্যাট) একটি সময় উইন্ডোর শুরু.
endTime স্ট্রিং (RFC3339 UTC "জুলু" ফর্ম্যাট) একটা সময় জানালার শেষ।

উদাহরণ

এই বিভাগে তিন ধরনের উদাহরণ কভার করে:

কোড নমুনা

নিম্নলিখিত বিভাগগুলি বিভিন্ন ধরণের টাইম উইন্ডোর কোড নমুনা দেখায়।

গ্লোবাল টাইম উইন্ডোজ

নিম্নলিখিত কোড নমুনা গ্লোবাল টাইম উইন্ডোর গঠন দেখায়:

{
  "model": {
    "globalStartTime": "YYYY-MM-DDTHH:MM:SSZ",
    "globalEndTime": "YYYY-MM-DDTHH:MM:SSZ",
    "shipments": [ ... ],
    "vehicles": [ ... ]
  }
}

পিকআপ এবং ডেলিভারি সময় উইন্ডোজ

নিম্নলিখিত কোড নমুনা একটি চালানের পিকআপ এবং ডেলিভারির সময় উইন্ডোগুলির গঠন দেখায়:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "timeWindows": [
              {
                "startTime": "YYYY-MM-DDTHH:MM:SSZ",
                "endTime": "YYYY-MM-DDTHH:MM:SSZ"
              }
            ]
          }
        ],
        "deliveries": [
          {
            "timeWindows": [
              {
                "startTime": "YYYY-MM-DDTHH:MM:SSZ",
                "endTime": "YYYY-MM-DDTHH:MM:SSZ"
              }
            ]
          }
        ]
      }
    ],
    "vehicles": [ ... ]
  }
}

গাড়ির সময় জানালা

নিম্নলিখিত কোড নমুনা একটি গাড়ির সময় জানালার গঠন দেখায়:

{
  "model": {
    "shipments": [ ... ],
    "vehicles": [
      {
        "startTimeWindows": [
          {
            "startTime": "YYYY-MM-DDTHH:MM:SSZ",
            "endTime": "YYYY-MM-DDTHH:MM:SSZ"
          }
        ],
        "endTimeWindows": [
          {
            "startTime": "YYYY-MM-DDTHH:MM:SSZ",
            "endTime": "YYYY-MM-DDTHH:MM:SSZ"
          }
        ]
      }
    ]
  }
}

উদাহরণ দৃশ্যকল্প

এই বিভাগে একটি কুকুর ডে কেয়ার ব্যবসা দৃশ্যকল্প ব্যবহার করে. উদাহরণটি দুটি ভিন্ন বাড়ি থেকে কুকুরকে তুলে নেওয়া এবং নামানোর রুটগুলিকে অপ্টিমাইজ করে এবং মালিকদের কাছে একই পিকআপ এবং ড্রপ অফ টাইম উইন্ডো রয়েছে৷ অপ্টিমাইজারকে ডে-কেয়ারের অপারেটিং ঘন্টা, গ্রাহকদের জন্য নির্দিষ্ট পিকআপ এবং ড্রপ-অফ উইন্ডো এবং ড্রাইভারের কাজের সময়কে সম্মান করা উচিত।

এই উদাহরণের জন্য, অনুরোধে সম্পত্তির মানগুলি নিম্নরূপ:

অভিভাবক সম্পত্তি মান দৃশ্যকল্প
ShipmentModel globalStartTime 2023-01-13T07:00:00Z আপনার কুকুরের ডে কেয়ারের খোলার সময়কে প্রতিনিধিত্ব করে। এই সময়ের আগে কোনো পিকআপ বা ডেলিভারি ঘটতে পারে না।
ShipmentModel globalEndTime 2023-01-13T19:00:00Z আপনার কুকুরের ডে-কেয়ারের বন্ধের সময়কে প্রতিনিধিত্ব করে। সমস্ত পিকআপ এবং ডেলিভারি এই সময়ের মধ্যে সম্পন্ন করতে হবে।
Shipment.pickups timeWindows startTime :
2023-01-13T07:30:00Z
একটি গ্রাহকের বাড়ি থেকে একটি কুকুর বাছাই করার জন্য গ্রহণযোগ্য উইন্ডো সংজ্ঞায়িত করে৷ এই উদাহরণে, আপনি উভয় গ্রাহককে সকাল 7:30 থেকে সকাল 9:00 এর মধ্যে পিকআপের জন্য উপলব্ধ থাকতে বলেছেন।
endTime :
2023-01-13T09:00:00Z
Shipment.deliveries timeWindows startTime :
2023-01-13T17:00:00Z
একটি গ্রাহকের বাড়িতে একটি কুকুর ছেড়ে দেওয়ার জন্য গ্রহণযোগ্য উইন্ডো সংজ্ঞায়িত করে৷ এই উদাহরণে, আপনি উভয় গ্রাহককে বলেছেন যে তাদের কুকুরকে বিকেল 5:00 PM থেকে 6:30 PM এর মধ্যে ছেড়ে দেওয়া হবে।
endTime :
2023-01-13T18:30:00Z
Vehicle startTimeWindows startTime :
2023-01-13T07:00:00Z
endTime :
2023-01-13T07:15:00Z
গাড়ির শুরু (7:00 AM থেকে 7:15 AM) এবং শেষ (5:00 PM থেকে 5:15 PM) করার জন্য গ্রহণযোগ্য উইন্ডো নির্ধারণ করে।
endTimeWindows startTime :
2023-01-13T18:45:00Z
endTime :
2023-01-13T19:00:00Z

নিম্নলিখিত চিত্রটি এই রুটকে প্রভাবিত করার সময় উইন্ডোগুলিকে চিত্রিত করে৷

Several timelines represent the global time window, pickup and delivery time windows, vehicle start and end time windows, and vehicle working hours.

এই দৃশ্যে, চিত্র দ্বারা চিত্রিত হিসাবে, সময় উইন্ডোগুলি নিম্নরূপ কাজ করে:

  • গ্লোবাল টাইম উইন্ডো ডগি ডে-কেয়ার ব্যবসার সময়কে প্রতিনিধিত্ব করে এবং অন্য সব সময় জানালা অবশ্যই এই টাইম উইন্ডোর ভিতরে পড়তে হবে।
  • পিকআপ এবং ডেলিভারির নিজস্ব timeWindows থাকে যথাক্রমে দিনের শুরুতে এবং শেষে উইন্ডোজের।
  • গাড়ির startTimeWindows যানবাহন অপারেটরকে একটি সময়সীমা দেয় যেখানে তাদের কাজ শুরু করতে হবে এবং endTimeWindows আরেকটি সময়সীমা প্রদান করে যেখানে তাদের তাদের দিন শেষ করতে হবে।
  • প্রথম startTimeWindow এর শুরুর সময় এবং শেষ endTimeWindow এর শেষ সময় গাড়ির অপারেটিং ঘন্টাকে সংজ্ঞায়িত করে, যা এই ক্ষেত্রে, গ্লোবাল টাইম উইন্ডোর মতোই৷

অনুরোধ উদাহরণ

নিম্নলিখিত উদাহরণটি একটি optimizeTours অনুরোধের কাঠামো দেখায় যা উদাহরণের দৃশ্যের সময় উইন্ডোর মানগুলিকে অন্তর্ভুক্ত করে৷

{
  "model": {
    "globalStartTime": "2023-01-13T07:00:00Z",
    "globalEndTime": "2023-01-13T19:00:00Z",
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            },
            "timeWindows": [
              {
                "startTime": "2023-01-13T07:30:00Z",
                "endTime": "2023-01-13T09:00:00Z"
              }
            ]
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            },
            "timeWindows": [
              {
                "startTime": "2023-01-13T17:00:00Z",
                "endTime": "2023-01-13T18:30:00Z"
              }
            ]
          }
        ]
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            },
            "timeWindows": [
              {
                "startTime": "2023-01-13T07:30:00Z",
                "endTime": "2023-01-13T09:00:00Z"
              }
            ]
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            },
            "timeWindows": [
              {
                "startTime": "2023-01-13T17:00:00Z",
                "endTime": "2023-01-13T18:30:00Z"
              }
            ]
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "costPerHour": 27,
        "startTimeWindows": [
          {
            "startTime": "2023-01-13T07:00:00Z",
            "endTime": "2023-01-13T07:15:00Z"
          }
        ],
        "endTimeWindows": [
          {
            "startTime": "2023-01-13T18:45:00Z",
            "endTime": "2023-01-13T19:00:00Z"
          }
        ]
      }
    ]
  }
}

নরম সময় জানালা

একটি TimeWindow বার্তার ধরনে softStartTime এবং softEndTime সংজ্ঞায়িত করে টাইম উইন্ডোগুলি নরম সীমাবদ্ধতা হিসাবে ব্যবহার করা যেতে পারে। এটি অপ্টিমাইজারকে একটি নির্দিষ্ট খরচে নির্দিষ্ট সময় উইন্ডো থেকে বিচ্যুত করার অনুমতি দেয়, যখন উপকারী হয় তখন সময়সীমার কঠোর আনুগত্যের উপর সামগ্রিক অপ্টিমাইজেশনকে অগ্রাধিকার দেয়।

সফ্ট টাইম উইন্ডোগুলির নিম্নলিখিত ব্যবহারের সীমাবদ্ধতা রয়েছে:

  • এগুলি globalStartTime এবং globalEndTime এ প্রয়োগ করা যাবে না কারণ তারা TimeWindow বার্তা টাইপ ব্যবহার করে না।
  • একটি তালিকায় একটি একক TimeWindow থাকলেই এগুলি প্রযোজ্য৷

বৈশিষ্ট্য

তিনি নিম্নলিখিত সারণি সময় উইন্ডোর জন্য নরম সীমাবদ্ধতা বৈশিষ্ট্য বর্ণনা করে.

সম্পত্তির নাম বিন্যাস সম্পত্তির বিবরণ
softStartTime টাইমস্ট্যাম্প নরম সময় উইন্ডোর শুরু নির্দিষ্ট করে। এই সময়ের আগে একটি ঘটনা ঘটলে, একটি খরচ খরচ করা হয়.
softEndTime টাইমস্ট্যাম্প নরম সময় উইন্ডোর শেষ নির্দিষ্ট করে। এই সময়ের পরে কোনো ঘটনা ঘটলে, একটি খরচ বহন করা হয়।
costPerHourBeforeSoftStartTime সংখ্যা softStartTime এর আগে একটি ইভেন্ট শুরু হলে প্রতি ঘন্টার খরচ। softStartTime ব্যবহার করার সময় এই বৈশিষ্ট্যটি প্রয়োজন। খরচ কিভাবে বাস্তবায়ন করতে হয় সে সম্পর্কে আরও জানতে খরচ মডেল কী ধারণাটি দেখুন।
costPerHourAfterSoftEndTime সংখ্যা softEndTime এর পরে কোনো ইভেন্ট শেষ হলে প্রতি ঘণ্টার খরচ। softEndTime ব্যবহার করার সময় এই সম্পত্তির প্রয়োজন হয়। খরচ কিভাবে বাস্তবায়ন করতে হয় সে সম্পর্কে আরও জানতে খরচ মডেল কী ধারণাটি দেখুন।

কোড নমুনা

নিম্নলিখিত উদাহরণটি একটি TimeWindow বার্তা প্রকারের নরম সীমাবদ্ধতার বৈশিষ্ট্যগুলির গঠন দেখায়:

    {
      "softStartTime": "SOFT_START_TIME",
      "softEndTime": "SOFT_END_TIME",
      "costPerHourBeforeSoftStartTime": COST_BEFORE_START_TIME,
      "costPerHourAfterSoftEndTime": COST_AFTER_END_TIME
    }