Tujuan utama Route Optimization API adalah menemukan rute dengan biaya terendah. Dengan demikian, model biaya adalah pendorong utama pengoptimalan rute.
Model biaya adalah kumpulan properti yang menentukan biaya global, kendaraan, dan pengiriman.
Properti model biaya mendukung jenis tujuan pengoptimalan berikut:
- Penugasan dan rute kendaraan yang efisien
- Waktu pengambilan dan pengiriman yang hemat biaya
- Prioritas pengiriman penting
Struktur
Seperti yang ditunjukkan dalam diagram, properti model biaya disusun sebagai berikut:
Shipmentberisi propertipenaltyCost.Vehicleberisi properti berikut:
Dokumen ini hanya menyoroti parameter model biaya penting. Lihat dokumentasi referensi untuk mengetahui kumpulan lengkap parameter biaya.
Checklist penting
Checklist berikut menjelaskan pengetahuan penting yang mencegah potensi kesalahan terkait biaya. Daftar ini dapat membantu Anda memvalidasi permintaan dan memecahkan masalah respons.
Properti
Tabel berikut mencantumkan dan menjelaskan properti model biaya.
| Orang tua | Nama properti | Jenis properti | Biaya per | Deskripsi properti |
|---|---|---|---|---|
Shipment |
penaltyCost |
angka | Pengiriman dilewati | Biaya yang dikeluarkan karena melewatkan pengiriman. API akan melewatkan pengiriman jika biaya untuk menyelesaikannya melebihi biaya penaltinya.
|
Vehicle |
fixedCost |
angka | Pengiriman | Biaya tetap yang diterapkan jika kendaraan ini digunakan untuk menangani pengiriman. |
costPerHour |
angka | Jam | Biaya mengoperasikan kendaraan per jam termasuk waktu transit, tunggu, kunjungan, dan istirahat. Saat biaya ini meningkat, pengoptimal akan mencoba menemukan rute yang lebih cepat yang mungkin bukan rute terpendek. Properti ini dapat menjadi biaya per kendaraan yang efektif dan mandiri karena kesederhanaan dan kelengkapannya. |
|
costPerKilometer |
angka | Kilometer | Biaya per kilometer yang ditempuh oleh kendaraan, yang dapat mewakili biaya bahan bakar atau biaya perawatan kendaraan yang diamortisasi. | |
costPerTraveledHour |
angka | Jam | Biaya mengoperasikan kendaraan per jam hanya saat dalam perjalanan, tidak termasuk waktu tunggu, kunjungan, dan istirahat. Hal ini memprioritaskan rute perjalanan yang lebih cepat daripada rute yang lebih pendek. |
Contoh
Bagian ini mencakup tiga jenis contoh:
- Contoh kode yang menggambarkan struktur properti model biaya.
- Contoh skenario yang menunjukkan salah satu cara menggunakan properti model biaya untuk mencapai tujuan bisnis.
- Contoh permintaan yang menyertakan nilai yang ditetapkan dalam contoh skenario.
Contoh kode
Contoh kode berikut menunjukkan struktur properti model biaya di
Shipment:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
Contoh kode berikut menunjukkan struktur properti model biaya di
Vehicle:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "fixedCost": FIXED_COST, "costPerKilometer": KILOMETER_COST, "costPerHour": HOUR_COST, "costPerTraveledHour": TRAVELED_HOUR_COST } ] } }
Contoh skenario
Bagian ini menjelaskan skenario saat Anda memiliki bisnis penitipan. Anda mengoptimalkan rute untuk truk yang digunakan untuk menjemput dari rumahnya. Dalam skenario ini, Anda ingin pengoptimal memperhitungkan biaya yang terkait dengan penjemputan dan operasi kendaraan saat memberikan rute.
Untuk contoh ini, satu unit biaya mewakili 1 dolar. Artinya, nilai properti model biaya dalam permintaan Anda adalah sebagai berikut:
| Properti | Nilai | Skenario |
|---|---|---|
penaltyCost |
10 | Mewakili penalti yang Anda tawarkan kepada pelanggan karena tidak menjemput mereka pada hari yang dijadwalkan. Setiap kali Anda tidak menjemput pada hari yang dijadwalkan, pelanggan akan mendapatkan diskon 40 dolar dari total layanan mereka. |
fixedCost |
30 | Mewakili biaya harian pembayaran pinjaman kendaraan Anda, yaitu 30 dolar per hari. |
costPerKilometer |
0,08 | Mewakili jumlah bensin yang digunakan kendaraan Anda per kilometer. Kendaraan Anda memerlukan 0,04 galon per kilometer untuk bergerak, dan biaya per galon di wilayah Anda adalah 2 dolar. |
costPerHour |
27 | Mewakili jumlah yang Anda bayar kepada pengemudi untuk mengemudikan kendaraan Anda. Anda membayar pengemudi 27 dolar per jam. |
costPerTraveledHour |
2,5 | Mewakili jumlah yang harus Anda bayar untuk AC kendaraan per jam untuk saat di jalan. Setiap kali kendaraan tidak bergerak, pengemudi dapat membuka pintu di belakang dan mematikan AC. |
Berdasarkan parameter biaya, pengoptimal dapat membuat pertukaran yang tidak jelas bagi pengguna, tetapi dapat ditemukan melalui pengoptimalan.
Diagram berikut mengilustrasikan contoh saat pengoptimal dapat memilih rute yang lebih panjang tetapi lebih cepat melalui garis putus-putus hijau untuk menghindari lalu lintas di garis putus-putus merah.

Dalam skenario ini, keseimbangan biaya kedua rute adalah sebagai berikut:
Garis putus-putus hijau memiliki
costPerHourdancostPerTraveledHouryang rendah karena merupakan rute cepat yang menghindari lalu lintas, yang lebih hemat biaya meskipuncostPerKilometertinggi.Garis putus-putus merah memiliki
costPerKilometeryang rendah karena merupakan rute langsung, tetapicostPerHourdancostPerTraveledHourterlalu tinggi karena waktu tunggu dalam lalu lintas, sehingga menjadikannya rute termahal.
Selain menyediakan rute yang hemat biaya, pengoptimal juga memberikan a penjumlahan total biaya rute pengiriman dalam respons properti.
Contoh permintaan
Contoh berikut menunjukkan struktur permintaan dasar optimizeTours
yang menggabungkan nilai yang ditetapkan dalam contoh skenario:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] "penaltyCost": 40 } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "fixedCost": 30, "costPerKilometer": 0.08, "costPerHour": 27, "costPerTraveledHour": 2.5 } ] } }
Properti respons
Pesan OptimizeToursResponse memiliki properti biaya
yang menjelaskan biaya yang dikeluarkan dalam proses penyelesaian rute:
metrics.costs: Total biaya di semua rute yang dipecah berdasarkan kolom permintaan terkait biaya.metrics.totalCost: Total biaya di semua rute yang dijumlahkan.