OptimizeToursRequest বার্তায় ( REST , gRPC ) costs সম্পর্কিত বেশ কিছু বৈশিষ্ট্য রয়েছে। একসাথে, এই cost প্যারামিটারগুলি অনুরোধের cost মডেলকে প্রতিনিধিত্ব করে। cost মডেলটি অনুরোধের অনেক উচ্চ-স্তরের অপ্টিমাইজেশন উদ্দেশ্য ক্যাপচার করে, যেমন:
- ছোট রুট বা অন্য কোনও রুটের চেয়ে দ্রুত
Vehicleরুটকে অগ্রাধিকার দেওয়া - একটি
Shipmentসরবরাহের খরচShipmentসমাপ্তির মূল্যের সমান কিনা তা নির্ধারণ করা - শুধুমাত্র সময়সীমার মধ্যে পিকআপ এবং ডেলিভারি করা যখন সাশ্রয়ী হয়
খরচ সহ একটি উদাহরণ অনুরোধ দেখুন
{ "model": { "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00", "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 100.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 5.0 }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ], "penaltyCost": 50.0 } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 40.0, "costPerKilometer": 10.0 } ] } }
Vehicle খরচের বৈশিষ্ট্য
Vehicle বার্তা ( REST , gRPC ) এর বেশ কয়েকটি খরচের বৈশিষ্ট্য রয়েছে:
-
Vehicle.cost_per_hour: পরিবহন, অপেক্ষা, পরিদর্শন এবং বিরতির সময় সহ প্রতি ঘন্টায় একটি গাড়ি পরিচালনার খরচ প্রতিনিধিত্ব করে। -
Vehicle.cost_per_kilometer: গাড়ির প্রতি কিলোমিটার ভ্রমণের খরচ প্রতিনিধিত্ব করে। -
Vehicle.cost_per_traveled_hour: শুধুমাত্র পরিবহনের সময় গাড়ি চালানোর খরচ উপস্থাপন করে, অপেক্ষা, পরিদর্শন এবং বিরতির সময় বাদ দিয়ে।
এই খরচের প্যারামিটারগুলি অপ্টিমাইজারকে সময়-বনাম-ভ্রমণ-দূরত্বের বিনিময় করতে দেয়। অপ্টিমাইজ করা রুটের খরচগুলি প্রতিক্রিয়া বার্তায় metrics.costs হিসাবে প্রদর্শিত হয়:
costPerHour বৃদ্ধির সাথে সাথে, অপ্টিমাইজার দ্রুততর রুটগুলি খুঁজে বের করার চেষ্টা করে যা সম্ভবত সবচেয়ে ছোট রুট নয়। এই উদাহরণে দ্রুততম রুটটি সবচেয়ে ছোট, তাই খরচের প্যারামিটারগুলিতে পরিবর্তনগুলি খুব কম প্রভাব ফেলে।
Shipment খরচের বৈশিষ্ট্য
Shipment মেসেজ ( REST , gRPC ) এর বেশ কয়েকটি খরচের প্যারামিটারও রয়েছে:
-
Shipment.penalty_costহল শিপমেন্ট এড়িয়ে যাওয়ার খরচ। শিপমেন্টেরpenalty_costপ্যারামিটার সেট না করলে শিপমেন্ট বাধ্যতামূলক হয়, যার অর্থ হল নির্দিষ্ট সীমাবদ্ধতার কারণে যদি এটি সম্পন্ন না করা যায় তবেই শিপমেন্ট এড়িয়ে যাওয়া হবে। -
Shipment.VisitRequest.costএকটি নির্দিষ্ট পিকআপ বা ডেলিভারির খরচকে প্রতিনিধিত্ব করে, যা মূলত একটি একক চালানের জন্য একাধিক পিকআপ বা ডেলিভারি বিকল্পের মধ্যে খরচ বিনিময় সক্ষম করতে ব্যবহৃত হয়।
Shipment খরচের প্যারামিটারগুলি Vehicle খরচের প্যারামিটারের মতো একই মাত্রাবিহীন ইউনিট ব্যবহার করে। একটি Shipment সম্পূর্ণ করার খরচ তার জরিমানা খরচকে ছাড়িয়ে যায়, Shipment কোনও Vehicle রুটে অন্তর্ভুক্ত করা হয় না এবং পরিবর্তে প্রতিক্রিয়া বার্তায় skipped_shipments তালিকায় প্রদর্শিত হয়।
ShipmentModel খরচ বৈশিষ্ট্য
ShipmentModel বার্তা ( REST , gRPC ) তে একটি একক খরচের বৈশিষ্ট্য রয়েছে, globalDurationCostPerHour । এই খরচ সমস্ত যানবাহনের ShipmentRoute সম্পন্ন করতে মোট কত সময় লাগে তার উপর ভিত্তি করে করা হয়। globalDurationCostPerHour বৃদ্ধি সমস্ত চালানের আগে সম্পন্ন করাকে অগ্রাধিকার দেয়।
রুট অপ্টিমাইজেশন প্রতিক্রিয়া খরচ বৈশিষ্ট্য
OptimizeToursResponse বার্তা ( REST , gRPC ) এর খরচের বৈশিষ্ট্য রয়েছে যা ShipmentRoute সম্পূর্ণ করার প্রক্রিয়ায় হওয়া খরচের প্রতিনিধিত্ব করে। metrics.costs এবং metrics.totalCost বৈশিষ্ট্যগুলি প্রতিক্রিয়ায় সমস্ত রুটে হওয়া খরচের ইউনিটের সংখ্যা প্রতিনিধিত্ব করে। প্রতিটি routes এন্ট্রিতে routeCosts এবং routeTotalCosts বৈশিষ্ট্য রয়েছে যা সেই নির্দিষ্ট রুটের খরচের প্রতিনিধিত্ব করে।
খরচ সহ উদাহরণ অনুরোধের একটি প্রতিক্রিয়া দেখুন।
{ "routes": [ { "vehicleStartTime": "2023-01-14T00:00:00Z", "vehicleEndTime": "2023-01-14T00:28:22Z", "visits": [ { "isPickup": true, "startTime": "2023-01-14T00:00:00Z", "detour": "0s" }, { "shipmentIndex": 2, "isPickup": true, "startTime": "2023-01-14T00:02:30Z", "detour": "150s" }, { "startTime": "2023-01-14T00:08:55Z", "detour": "150s" }, { "shipmentIndex": 2, "startTime": "2023-01-14T00:21:21Z", "detour": "572s" } ], "transitions": [ { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:00:00Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:02:30Z" }, { "travelDuration": "235s", "travelDistanceMeters": 795, "waitDuration": "0s", "totalDuration": "235s", "startTime": "2023-01-14T00:05:00Z" }, { "travelDuration": "496s", "travelDistanceMeters": 1893, "waitDuration": "0s", "totalDuration": "496s", "startTime": "2023-01-14T00:13:05Z" }, { "travelDuration": "171s", "travelDistanceMeters": 665, "waitDuration": "0s", "totalDuration": "171s", "startTime": "2023-01-14T00:25:31Z" } ], "metrics": { "performedShipmentCount": 2, "travelDuration": "902s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "800s", "totalDuration": "1702s", "travelDistanceMeters": 3353 }, "routeCosts": { "model.vehicles.cost_per_kilometer": 33.53, "model.vehicles.cost_per_hour": 18.911111111111111 }, "routeTotalCost": 52.441111111111113 } ], "skippedShipments": [ { "index": 1 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 2, "travelDuration": "902s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "800s", "totalDuration": "1702s", "travelDistanceMeters": 3353 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2023-01-14T00:00:00Z", "latestVehicleEndTime": "2023-01-14T00:28:22Z", "totalCost": 57.441111111111113, "costs": { "model.vehicles.cost_per_kilometer": 33.53, "model.vehicles.cost_per_hour": 18.911111111111111, "model.shipments.penalty_cost": 5 } } }
উদাহরণের প্রতিক্রিয়ায়, শীর্ষ-স্তরের metrics.costs হল:
{
"metrics": {
...
"costs": {
"model.vehicles.cost_per_hour": 18.911111111111111,
"model.vehicles.cost_per_kilometer": 33.53,
"model.shipments.penalty_cost": 5
}
}
}
model.shipments.penalty_cost মানটি শিপমেন্ট বাদ দেওয়ার কারণে হওয়া খরচকে প্রতিনিধিত্ব করে। skippedShipments সম্পত্তিতে কোন শিপমেন্ট বাদ দেওয়া হয়েছে তা তালিকাভুক্ত করা হয়।
এই উদাহরণে, উদাহরণ অনুরোধে শুধুমাত্র model.shipments[1] বাদ দেওয়া হয়েছে। model.shipments[1] এর পেনাল্টি খরচ ৫ ইউনিট, যা উদাহরণ প্রতিক্রিয়ার মোট model.shipments.penalty_cost কী এর সাথে মিলে যায়। Vehicle এর 40.0 costPerHour এবং 10.0 costPerKilometer তুলনায় চালানের কম penaltyCost খরচ চালানটি সম্পূর্ণ করার চেয়ে এড়িয়ে যাওয়াকে বেশি সাশ্রয়ী করে তোলে।
উন্নত বিষয়: খরচ এবং নরম সীমাবদ্ধতা
বেশ কিছু OptimizeToursRequest বার্তা ( REST , gRPC ) বৈশিষ্ট্য নরম সীমাবদ্ধতাকে প্রতিনিধিত্ব করে, যা এমন সীমাবদ্ধতা যা পূরণ না হলে খরচ বহন করে।
উদাহরণস্বরূপ, যানবাহনের LoadLimit ( REST , gRPC ) সীমাবদ্ধতার মধ্যে softMaxLoad এবং costPerUnitAboveSoftMax বৈশিষ্ট্য রয়েছে। একসাথে, এই খরচগুলি softMaxLoad অতিক্রমকারী লোড ইউনিটের সমানুপাতিক, যা সীমা অতিক্রম করার অনুমতি দেয় শুধুমাত্র যদি খরচের দৃষ্টিকোণ থেকে এটি করা যুক্তিসঙ্গত হয়।
একইভাবে, TimeWindow সীমাবদ্ধতা ( REST , gRPC ) এর soft_start_time এবং soft_end_time বৈশিষ্ট্য রয়েছে, যার সাথে সংশ্লিষ্ট cost_per_hour_before_soft_start_time এবং cost_per_hour_after_soft_end_time রয়েছে যা TimeWindow এর সাথে সম্পর্কিত সীমাবদ্ধ ঘটনাটি কত তাড়াতাড়ি বা দেরিতে ঘটে তার উপর নির্ভর করে।
সমস্ত খরচ মডেল প্যারামিটারের মতো, নরম সীমাবদ্ধতা খরচ অন্যান্য খরচ প্যারামিটারের মতো একই মাত্রাবিহীন ইউনিটে প্রকাশ করা হয়।
LoadLimit সীমাবদ্ধতাগুলি লোড ডিমান্ডস এবং লিমিটস -এ বিস্তারিতভাবে আলোচনা করা হয়েছে। TimeWindow সীমাবদ্ধতাগুলি পিকআপ এবং ডেলিভারি টাইম উইন্ডো সীমাবদ্ধতাগুলিতে বিস্তারিতভাবে আলোচনা করা হয়েছে।