Tujuan utama Route Optimization API adalah menemukan rute dengan biaya terendah. Dengan demikian, model biaya adalah pendorong utama untuk pengoptimalan rute.
Model biaya adalah serangkaian 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:
Shipment
berisi propertipenaltyCost
.Vehicle
berisi properti berikut:
Dokumen ini hanya menyoroti parameter model biaya penting. Lihat dokumentasi referensi untuk mengetahui kumpulan lengkap parameter biaya.
Checklist Essentials
Checklist berikut menjelaskan pengetahuan penting yang mencegah kemungkinan 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 yang dilewati | Biaya yang dikeluarkan karena melewatkan pengiriman. API melewati pengiriman jika biaya untuk menyelesaikannya melebihi biaya penaltinya.
|
Vehicle |
fixedCost |
angka | Pengiriman | Biaya tetap diterapkan jika kendaraan ini digunakan untuk menangani pengiriman. |
costPerHour |
angka | Jam | Biaya pengoperasian kendaraan per jam termasuk waktu transit, menunggu, berkunjung, dan istirahat. Seiring meningkatnya biaya ini, pengoptimal akan mencoba menemukan rute yang lebih cepat yang mungkin bukan rute terpendek. Properti ini dapat menjadi biaya per kendaraan mandiri yang efektif karena kesederhanaan dan kelengkapannya. |
|
costPerKilometer |
angka | Kilometer | Biaya per kilometer yang ditempuh oleh kendaraan, seperti biaya bahan bakar dan biaya pemeliharaan kendaraan yang diamortisasi. | |
costPerTraveledHour |
angka | Jam | Biaya mengoperasikan kendaraan per jam hanya saat dalam perjalanan, tidak termasuk waktu menunggu, berkunjung, 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 mengilustrasikan 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 skenario contoh.
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 Anda gunakan untuk menjemput dari rumah mereka. Dalam skenario ini, Anda ingin pengoptimal memperhitungkan biaya yang terkait dengan penjemputan dan pengoperasian 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 denda yang Anda tawarkan kepada pelanggan karena tidak mengambil 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 | Menunjukkan 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 | Menunjukkan 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 dalam perjalanan. Setiap kali kendaraan tidak bergerak, pengemudi dapat membuka pintu di belakang dan mematikan AC. |
Berdasarkan parameter biaya, pengoptimal dapat membuat kompromi 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 traffic di garis putus-putus merah.
Dalam skenario ini, saldo biaya kedua rute adalah sebagai berikut:
Garis putus-putus hijau memiliki
costPerHour
dancostPerTraveledHour
yang rendah karena merupakan rute cepat yang menghindari kemacetan, sehingga lebih hemat biaya meskipuncostPerKilometer
-nya tinggi.Garis putus-putus merah memiliki
costPerKilometer
yang rendah karena merupakan rute langsung, tetapicostPerHour
dancostPerTraveledHour
terlalu tinggi karena waktu tunggu dalam lalu lintas, sehingga menjadikannya rute termahal.
Selain menyediakan rute yang hemat biaya, pengoptimal juga memberikan penjumlahan total biaya rute pengiriman dalam properti respons.
Contoh permintaan
Contoh berikut menunjukkan struktur permintaan optimizeTours
dasar 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 dikelompokkan berdasarkan kolom permintaan terkait biaya.metrics.totalCost
: Total biaya di semua rute yang dijumlahkan.