Buat permintaan dengan biaya muatan agar pengoptimal mempertimbangkan muatan yang dibawa kendaraan Anda di antara kunjungan. Biaya yang dikeluarkan bergantung pada jumlah ShipmentRoute.VehicleLoad yang dibawa dan jarak atau durasi transisi (menggunakan cost_per_kilometer atau cost_per_traveled_hour).
Contoh permintaan minimal dengan biaya pemuatan
Berikut adalah contoh sebagian permintaan dengan biaya pemuatan. Dalam contoh ini, satu kendaraan tidak boleh membawa beban weightKg total lebih dari 1.000 kg, yang dikenai 1 unit biaya per kilometer jika beban weightKg yang dibawa melebihi 500 kg.
{ "model": { "vehicles": [{ "loadLimits": { "weightKg": { "maxLoad": "1000", "costPerKilometer": { "loadThreshold": "500", "costPerUnitAboveThreshold": 1 } } } }] } }
Penghitungan biaya pemuatan untuk contoh ini adalah sebagai berikut:
cost = max(carried load - load threshold, 0) * distance * cost per unit above threshold
Jadi, jika kendaraan membawa beban weightKg sebesar 600 selama 10 kilometer, perhitungannya adalah:
(600 - 500) * 10 * 1 = 1000 cost units
Biaya muatan dapat digunakan untuk memodelkan berbagai konsep, seperti peningkatan penggunaan energi kendaraan saat mengangkut muatan berat atau keausan kendaraan yang disebabkan oleh pemuatan kendaraan yang berlebihan.
Contoh permintaan lain dengan biaya pemuatan
Berikut adalah contoh lain biaya muatan yang mengenakan biaya per waktu perjalanan baik di atas maupun di bawah nilai minimum:
{ "model": { "vehicles": [{ "loadLimits": { "weightLbs": { "maxLoad": "1000", "costPerTraveledHour": { "loadThreshold": "900", "costPerUnitAboveThreshold": 10, "costPerUnitBelowThreshold": 1 }, }, } }] } }
Penghitungan biaya pemuatan untuk contoh ini adalah sebagai berikut:
cost = max(carried load - load threshold, 0) * time * cost per unit above threshold
  + min(carried load, load threshold) * time * cost per unit below threshold
Jadi, jika kendaraan membawa beban weightLbs sebesar 950 selama 5 jam, perhitungannya adalah:
max(950 - 900, 0) * 5 * 10 + min(950, 900) * 5 * 1 = 7000
Dalam contoh ini, load_threshold untuk biaya pemuatan weightLbs mendekati
max_load. cost_per_unit_above_threshold menerapkan biaya per jam perjalanan yang tinggi saat kendaraan melakukan perjalanan dengan muatan yang sangat berat, sehingga memberikan penalti pada rute yang dapat meningkatkan keausan kendaraan atau mengonsumsi bahan bakar berlebih.
cost_per_unit_below_threshold menambahkan biaya per unit berat yang dibawa oleh
kendaraan hingga batas, yang menunjukkan peningkatan konsumsi bahan bakar saat
kendaraan membawa lebih banyak muatan.
Pertanyaan umum (FAQ)
Berikut beberapa pertanyaan umum (FAQ) tentang biaya pemuatan:
| Pertanyaan | Jawaban | 
|---|---|
| Di mana saya dapat menentukan biaya pemuatan? | Tentukan biaya pemuatan di Vehicle.LoadLimit. | 
  
| Bagaimana biaya muatan dicocokkan dengan pengiriman? | Biaya muatan berlaku untuk pengiriman yang jenis permintaan muatan-nya cocok dengan jenis batas muatan untuk kendaraan, seperti berat atau volume. Jenis beban adalah string arbitrer, seperti yang dijelaskan dalam permintaan dan batas beban. | 
| Bagaimana biaya pemuatan dinyatakan? | Biaya pemuatan dinyatakan dalam jarak transisi atau
      durasi. Gunakan cost_per_kilometer untuk menentukan biaya dalam
      hal jarak dan cost_per_traveled_hour untuk menentukan biaya
      dalam hal durasi.
     | 
  
| Kapan biaya pemuatan diterapkan? | Muatan kendaraan dibandingkan dengan load_threshold biaya muatan. Jika cost_per_unit_above_threshold ditentukan, biaya akan
      ditambahkan secara proporsional dengan beban kendaraan di atas
      load_threshold menggunakan formula
      max(0, load - load_threshold). Jika
      cost_per_unit_below_threshold ditentukan, biaya ditambahkan
      secara proporsional dengan beban kendaraan di bawah
      load_threshold, menggunakan formula
      min(load, load_threshold).
     | 
  
| Apa nilai default untuk parameter biaya pemuatan? | load_threshold, cost_per_unit_above_threshold, dan
      cost_per_unit_below_threshold semuanya nol secara default.
     | 
  
| Dalam satuan apa biaya pemuatan dinyatakan? | Biaya pemuatan dinyatakan dalam unit tanpa dimensi yang sama dengan semua parameter biaya lainnya, seperti global_duration_cost_per_hour atau Shipment.penalty_cost.
     | 
  
| Di mana saya dapat menemukan biaya pemuatan dalam respons? | Biaya pemuatan yang dikeluarkan muncul di properti metrics dan
    route_metrics dari pesan respons. Misalnya, cost_per_kilometer yang
      terjadi akan
      muncul sebagai model.vehicles.load_limits.cost_per_kilometer.
     | 
  
Untuk penjelasan mendetail tentang biaya pemuatan, lihat dokumentasi referensi (REST, gRPC).
Contoh: Membuat Permintaan OptimizeTours
Permintaan OptimizeTours juga dapat dilakukan menggunakan REST atau gRPC.
Sebelum membuat permintaan, ganti parameter berikut dengan nilai yang sesuai untuk lingkungan Anda:
- Pastikan Anda telah mengonfigurasi Kredensial Default Aplikasi seperti yang dijelaskan dalam Menggunakan OAuth.
 Tetapkan PROJECT_NUMBER_OR_ID ke nomor atau ID project Cloud Anda.
Perintah berikut mengirim permintaan
OptimizeTourske Route Optimization API dan menerima respons secara serentak.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
Setelah permintaan selesai, Anda akan menerima pesan respons.