Hedefler, maliyet modelinden belirli maliyet parametreleri sağlamak yerine üst düzey optimizasyon hedeflerini belirtmek için kullanabileceğiniz parametrelerdir.
Tek bir istekte birden fazla hedef kullanabilir ve her hedefe, genel optimizasyonu ne kadar etkileyeceğini kontrol etmek için göreceli bir ağırlık verebilirsiniz. Hedefler, tüm isteğinizi etkileyerek tüm araçlarınızı ve gönderilerinizi etkiler. Son olarak, Maliyet modeli oluşturma başlıklı makalede açıklandığı gibi, kendi maliyet modelinizin geliştirilmesine başlamak için hedefleri de kullanabilirsiniz.
Hedefleri kullanarak rota planınız üzerindeki aşağıdaki etkileri kontrol edebilirsiniz:
- Rotalarınızın toplam seyahat süresi veya mesafesi.
- Tüm araçlardaki toplam çalışma süresi.
- Kullanılan toplam araç sayısı.
Özellikler
objectives özelliği, ShipmentModel içindeki Objective mesaj türlerinden oluşan bir dizidir. Her Objective, belirli bir optimizasyon hedefini tanımlar ve aşağıdaki tabloda listelenen alanları içerir:
| Alan | Tür | Açıklama |
|---|---|---|
type |
Enum |
Önceden tanımlanmış optimizasyon hedefini belirtir. Kabul edilen değerler şunlardır:
|
weight |
Çift |
Bu hedefin göreceli önemini tanımlar. Birden fazla hedef kullanıldığında weight değeri, bu hedefin diğerlerine kıyasla genel rota optimizasyonunu ne kadar etkilediğini kontrol eder. Bu değer, negatif olmayan herhangi bir sayı olabilir ve toplamı 1 olmak zorunda değildir. Varsayılan değer 1.0'dır.
|
Örnekler
Bu bölümde iki tür örnek ele alınmaktadır:
objectivesdizisinin yapısını gösteren bir kod örneği.objectivesdizisini içeren bir istek örneği.
Kod örnekleri
Aşağıdaki örnekte objectives yapısı gösterilmektedir:
"objectives": [
{
"type": "OBJECTIVE_TYPE",
"weight": WEIGHT
}
]
İstek örneği
Aşağıdaki örnekte, birden fazla hedef içeren temel bir optimizeTours
isteğinin yapısı gösterilmektedir. Burada MIN_TRAVEL_TIME, MIN_WORKING_TIME'den 3 kat daha
önemlidir.
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING" } ], "objectives": [ { "type": "MIN_TRAVEL_TIME", "weight": 3.0 }, { "type": "MIN_WORKING_TIME" } ] } }
Maliyet modeli oluşturma
Hedefler, optimizasyon hedeflerini belirlemenin hızlı bir yoludur ancak bazı durumlarda tek başına yeterince spesifik olmayabilir. Tam yönlendirme hedeflerinize ulaşmak için yalnızca maliyet modeli parametreleri aracılığıyla kullanılabilen ayrıntılı kontrole ihtiyacınız olabilir.
İsteğinize
hedefler ekleyerek kendi maliyet modelinizi geliştirmeye başlayabilir, ardından TRANSFORM_AND_RETURN_REQUEST çözme
modunu kullanarak isteğinizdeki hedefleri maliyet modeli
parametrelerine dönüştürebilirsiniz.
Bu çözüm modunu kullanarak istek gönderdiğinizde şunlar olur:
- API, hedeflerinizi maliyet modeli parametrelerine dönüştürür ve bunları
processedRequestolarak döndürür. Ardından, rota planınızı hassas bir şekilde düzenlemek için maliyet modeli parametrelerini gerektiği gibi ayarlayabilirsiniz. - Birden fazla hedef kullanırken API, tüm hedeflerinizin maliyetlerini birleştirir ve bunları kendi ağırlıklarına göre ölçeklendirir.
- API, size optimize edilmiş bir rota sağlamadığından, yalnızca hedefleri maliyet modeli parametrelerine dönüştürdüğünden bu istek için faturalandırılmazsınız.
Örnek istek
Aşağıdaki örnekte, MIN_TRAVEL_TIME hedefi ve TRANSFORM_AND_RETURN_REQUEST çözüm modunu kullanan bir istek gösterilmektedir:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING" } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" }
Örnek yanıt
Aşağıda, önceki isteğe karşılık gelen yanıt verilmiştir. Bu yanıt, hem oluşturulan maliyet modeli parametrelerini hem de referans için orijinal hedefi içerir.
{ "processedRequest": { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.425062610009959, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.424215032060211, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerHour": 30, "costPerTraveledHour": 330, "costPerKilometer": 0.2 } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" } }