Tujuan adalah parameter yang dapat Anda gunakan untuk menentukan sasaran pengoptimalan tingkat tinggi, bukan memberikan parameter biaya tertentu dari model biaya.
Anda dapat menggunakan beberapa tujuan dalam satu permintaan, dan memberikan bobot relatif pada setiap tujuan untuk mengontrol seberapa kuat pengaruhnya terhadap pengoptimalan secara keseluruhan. Tujuan memengaruhi seluruh permintaan Anda, yang memengaruhi semua kendaraan dan pengiriman Anda. Terakhir, Anda juga dapat menggunakan tujuan untuk memulai pengembangan model biaya Anda sendiri seperti yang dijelaskan dalam Membuat model biaya.
Anda dapat menggunakan tujuan untuk mengontrol dampak berikut pada rencana rute Anda:
- Total waktu perjalanan atau jarak rute Anda.
- Total waktu kerja di semua kendaraan.
- Total jumlah kendaraan yang digunakan.
Properti
Properti objectives adalah array jenis pesan Objective
dalam ShipmentModel. Setiap Objective menentukan
sasaran pengoptimalan tertentu dan berisi kolom yang tercantum dalam
tabel berikut:
| Kolom | Jenis | Deskripsi |
|---|---|---|
type |
Enum |
Menentukan target pengoptimalan yang telah ditentukan sebelumnya. Nilai yang diterima adalah sebagai berikut:
|
weight |
Ganda |
Menentukan kepentingan relatif tujuan ini. Saat menggunakan beberapa tujuan, nilai weight mengontrol seberapa kuat tujuan tertentu ini memengaruhi pengoptimalan rute secara keseluruhan dibandingkan dengan tujuan lainnya. Nilai ini dapat berupa bilangan non-negatif apa pun dan tidak perlu berjumlah 1. Nilai defaultnya adalah 1.0.
|
Contoh
Bagian ini mencakup dua jenis contoh:
- Contoh kode yang mengilustrasikan struktur array
objectives. - Contoh permintaan yang menyertakan array
objectives.
Contoh kode
Contoh berikut menunjukkan struktur objectives:
"objectives": [
{
"type": "OBJECTIVE_TYPE",
"weight": WEIGHT
}
]
Contoh permintaan
Contoh berikut menunjukkan struktur permintaan optimizeTours dasar yang menggabungkan beberapa tujuan, dengan MIN_TRAVEL_TIME tiga kali lebih penting daripada MIN_WORKING_TIME.
{ "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" } ] } }
Membuat model biaya
Tujuan adalah cara cepat untuk menetapkan target pengoptimalan, tetapi dalam beberapa kasus, tujuan saja mungkin tidak cukup spesifik. Untuk mencapai sasaran perutean yang tepat, Anda mungkin memerlukan kontrol terperinci yang hanya tersedia melalui parameter model biaya.
Anda dapat memulai pengembangan model biaya sendiri dengan menambahkan tujuan ke permintaan, lalu mengonversi tujuan dalam permintaan menjadi parameter model biaya menggunakan mode penyelesaian TRANSFORM_AND_RETURN_REQUEST.
Saat Anda mengirim permintaan menggunakan mode penyelesaian ini, hal berikut akan terjadi:
- API ini mengonversi tujuan Anda menjadi parameter model biaya dan
menampilkannya dalam
processedRequest. Kemudian, Anda dapat menyesuaikan parameter model biaya sesuai kebutuhan untuk menyempurnakan rencana rute. - Saat menggunakan beberapa tujuan, API menggabungkan biaya semua tujuan Anda dan menskalakannya berdasarkan bobot masing-masing.
- Anda tidak ditagih untuk permintaan ini, karena API tidak memberikan rute yang dioptimalkan, tetapi hanya mengonversi tujuan menjadi parameter model biaya.
Contoh permintaan
Contoh berikut menunjukkan permintaan menggunakan tujuan MIN_TRAVEL_TIME dan
mode penyelesaian TRANSFORM_AND_RETURN_REQUEST:
{ "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" }
Contoh respons
Berikut adalah respons yang sesuai dengan permintaan sebelumnya. Respons ini mencakup parameter model biaya yang dihasilkan dan tujuan asli untuk referensi.
{ "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" } }