সময় জানালা

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
গ্রাহকের বাড়ি থেকে কুকুর তোলার জন্য গ্রহণযোগ্য সময়সীমা নির্ধারণ করে। এই উদাহরণে, আপনি উভয় গ্রাহককে সকাল ৭:৩০ থেকে ৯:০০ টার মধ্যে পিকআপের জন্য উপলব্ধ থাকতে বলেছেন।
endTime :
2023-01-13T09:00:00Z
Shipment.deliveries timeWindows startTime :
2023-01-13T17:00:00Z
গ্রাহকের বাড়িতে কুকুর নামানোর জন্য গ্রহণযোগ্য সময়সীমা নির্ধারণ করে। এই উদাহরণে, আপনি উভয় গ্রাহককে বলেছেন যে তাদের কুকুরকে বিকেল ৫:০০ টা থেকে সন্ধ্যা ৬:৩০ টার মধ্যে নামিয়ে দেওয়া হবে।
endTime :
2023-01-13T18:30:00Z
Vehicle 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

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

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
    }