Optimizasyon aracının, ziyaretler arasında araçlarınızın taşıdığı yükü dikkate alması için yük maliyetleriyle ilgili bir istekte bulunun. Oluşan maliyet, hem taşınan ShipmentRoute.VehicleLoad
miktarına hem de geçişin mesafesine veya süresine (sırasıyla cost_per_kilometer
veya cost_per_traveled_hour
kullanılarak) bağlıdır.
Yükleme maliyetleri içeren minimum örnek istek
Yükleme maliyeti içeren bir isteğin kısmi örneğini aşağıda bulabilirsiniz. Bu örnekte, tek bir araç toplamda en fazla 1.000 kg weightKg
yük taşıyabilir. Taşınan weightKg
yük 500 kg'ı aştığında kilometre başına 1 maliyet birimi uygulanır.
{ "model": { "vehicles": [{ "loadLimits": { "weightKg": { "maxLoad": "1000", "costPerKilometer": { "loadThreshold": "500", "costPerUnitAboveThreshold": 1 } } } }] } }
Bu örnek için yük maliyeti hesaplaması aşağıdaki gibidir:
cost = max(carried load - load threshold, 0) * distance * cost per unit above threshold
Bu nedenle, araç 10 kilometre boyunca 600 weightKg
yük taşıyorsa hesaplama şu şekilde yapılır:
(600 - 500) * 10 * 1 = 1000 cost units
Yük maliyetleri, ağır yüklerin taşınması sırasında araç enerji kullanımının artması veya aşırı yükleme nedeniyle araçta oluşan yıpranma gibi çeşitli kavramları modellemek için kullanılabilir.
Yükleme maliyetlerini içeren başka bir örnek istek
Hem eşiğin üzerinde hem de altında seyahat edilen süre başına maliyet uygulayan yük maliyetlerine dair başka bir örnek:
{ "model": { "vehicles": [{ "loadLimits": { "weightLbs": { "maxLoad": "1000", "costPerTraveledHour": { "loadThreshold": "900", "costPerUnitAboveThreshold": 10, "costPerUnitBelowThreshold": 1 }, }, } }] } }
Bu örnek için yük maliyeti hesaplaması aşağıdaki gibidir:
cost = max(carried load - load threshold, 0) * time * cost per unit above threshold
+ min(carried load, load threshold) * time * cost per unit below threshold
Bu nedenle, araç 5 saat boyunca 950 weightLbs
yük taşıyorsa hesaplama şu şekilde yapılır:
max(950 - 900, 0) * 5 * 10 + min(950, 900) * 5 * 1 = 7000
Bu örnekte, weightLbs
yük maliyetinin load_threshold
değeri max_load
değerine yakındır. cost_per_unit_above_threshold
, araç özellikle ağır bir yükle hareket ettiğinde yüksek bir seyahat saati maliyeti uygular. Bu, araçta aşınmayı artırabilecek veya fazla yakıt tüketecek rotaları cezalandırır.
cost_per_unit_below_threshold
, eşiğe kadar araç tarafından taşınan birim ağırlık başına maliyet ekler. Bu, araç daha fazla yük taşıdıkça yakıt tüketiminin arttığını gösterir.
Sık sorulan sorular
Yükleme maliyetleriyle ilgili sık sorulan bazı soruları aşağıda bulabilirsiniz:
Soru | Yanıt |
---|---|
Yük maliyetlerini nerede belirtirim? | Yükleme maliyetlerini Vehicle.LoadLimit olarak belirtin. |
Yük maliyetleri gönderimlerle nasıl eşleştirilir? | Yük maliyeti, yük talebi türü aracın yük sınırı türüyle (ör. ağırlık veya hacim) eşleşen gönderiler için geçerlidir. Yük türleri, yük talepleri ve sınırları bölümünde açıklandığı gibi rastgele dizelerdir. |
Yükleme maliyetleri nasıl ifade edilir? | Yük maliyetleri, geçiş mesafesi veya süre cinsinden ifade edilir. Maliyetleri mesafe cinsinden belirtmek için cost_per_kilometer , süre cinsinden belirtmek için cost_per_traveled_hour simgesini kullanın.
|
Yükleme maliyetleri ne zaman uygulanır? | Araç yükü, yük maliyetinin load_threshold ile karşılaştırılır. cost_per_unit_above_threshold belirtilmişse maliyet, max(0, load - load_threshold) formülü kullanılarak aracın yüküne göre load_threshold 'ün üzerinde orantılı olarak eklenir. cost_per_unit_below_threshold
belirtilmişse maliyet, load_threshold 'ün altındaki
araç yüküyle orantılı olarak min(load, load_threshold) formülü kullanılarak eklenir.
|
Yükleme maliyeti parametrelerinin varsayılan değerleri nelerdir? | load_threshold , cost_per_unit_above_threshold ve
cost_per_unit_below_threshold varsayılan olarak sıfırdır.
|
Yük maliyetleri hangi birimlerle ifade edilir? | Yük maliyetleri, global_duration_cost_per_hour veya Shipment.penalty_cost gibi diğer tüm maliyet parametreleriyle aynı boyutsuz birimlerle ifade edilir.
|
Yanıtın yükleme maliyetlerini nerede bulabilirim? | Yükleme maliyetleri, yanıt mesajlarının metrics ve route_metrics özelliklerinde gösterilir. Örneğin, yapılan bir cost_per_kilometer işlemi model.vehicles.load_limits.cost_per_kilometer olarak görünür.
|
Yük maliyetleriyle ilgili ayrıntılı açıklama için referans belgelerine (REST, gRPC) bakın.
Örnek: OptimizeTours
İsteğinde Bulunma
OptimizeTours
istekleri REST veya gRPC kullanılarak da yapılabilir.
İstek göndermeden önce aşağıdaki parametreleri ortamınıza uygun değerlerle değiştirin:
- Uygulama Varsayılan Kimlik Bilgileri'nin OAuth Kullanma bölümünde açıklandığı şekilde yapılandırıldığından emin olun.
PROJECT_NUMBER_OR_ID değerini Cloud proje numaranız veya kimliğiniz olarak ayarlayın.
Aşağıdaki komut, Route Optimization API'ye
OptimizeTours
isteği gönderir ve yanıtı senkron olarak alır.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- << EOM { "model": { "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "penaltyCost": 100.0, "loadDemands": { "weightKg": { "amount": 50 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "penaltyCost": 30.0, "loadDemands": { "weightKg": { "amount": 10 } } }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "penaltyCost": 50.0, "loadDemands": { "weightKg": { "amount": 80 } } } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerHour": 40.0, "costPerKilometer": 10.0, "loadLimits": { "weightKg": { "maxLoad": "100", "costPerKilometer": { "loadThreshold": "15", "costPerUnitAboveThreshold": 1 } } } } ] } } EOM
İstek tamamlandığında yanıt mesajı alırsınız.