Yük talepleri ve sınırları

loadDemands mülkü ShipmentModel.shipments.Shipment altında, loadLimits mülkü ise ShipmentModel.vehicles.Vehicle altında tanımlanır.

Yük talepleri ve sınırlar, kapasiteyi yönetmek için kullanabileceğiniz bir tür kısıtlamadır. Gönderinin gerekli kapasitesini ve aracın maksimum kapasitesini belirtir. Bu da rota atamalarını bu kısıtlamalara göre optimize etmenize olanak tanır.

Yük talepleri ve sınırlar aşağıdaki gibi hedefleri destekleyebilir:

  • Araçların aşırı yüklenmesini önleyin.
  • Gönderiler teslim alınırken ve teslim edilirken araç yüklerinin nasıl değiştiğini izleyin.
  • Bir aracın belirli bir konumu ziyaret etme sayısını kısıtlayın.

Yük talepleri ve sınırlar aşağıdaki özelliklerde belirtilir:

  • loadDemands, belirli bir gönderimin ihtiyaç duyduğu kapasite miktarını belirtir.
  • loadLimits, belirli bir araç için maksimum kapasiteyi belirtir.

Yapı

Şemada gösterildiği gibi, yük talepleri ve sınırlar aşağıdaki gibi yapılandırılmıştır:

Özellikler

Bu bölümde, yük talepleri ve sınırları için aşağıdaki özellikler açıklanmaktadır:

  • Yük türü: Yük talepleri ile sınırlar arasında paylaşılan bir özelliktir.
  • Load ve LoadLimit: Sırasıyla yükleme isteklerinde ve yükleme sınırlarında bulunan benzersiz özellikler.

Yükleme türü

Yük türleri, bir gönderim için yük taleplerinin türünü ve bir araç için yük sınırlarını tanımlayan dize anahtarlardır. Yükleme türlerinin önemli özellikleri şunlardır:

  • Kullanıcı tanımlı: Yükleme türleri, sizin tanımladığınız türlerdir. Yükleme türleri için önceden tanımlanmış sistem değişkeni yoktur.
  • Ortak: Yük türleri, kargolar ve araçlar arasında paylaşılmak üzere tasarlanmıştır. Bu, bir gönderimin, araç kapasitesini yalnızca yük türleri eşleştiğinde sınırına kadar kullanacağı anlamına gelir. Bir araçta belirli bir yük türü için yük sınırı belirtilmemişse bu yük türünü sınırsız miktarda taşıyabilir.

Yükleme türlerini temsil eden dize anahtarları Protocol Buffers harita türü söz dizimini kullanır. Sorun yaşanmaması için bu dize anahtarları boş olmamalıdır. Yük türünü adlandırırken yükün türünü ve birimini açıklayan tanımlayıcıların kullanılması önerilir. Örneğin: weightKg, volume_gallons, palletcount veya frequencyDaily.

Load ve LoadLimit

Load ve LoadLimit nesneleri, kargolar ve araçlar için kapasite şartlarını tanımlayan belirli özellikler içerir. Aşağıdaki tabloda bu özellikler açıklanmaktadır:

Nesne Ebeveyn Mülk Tesis türü Mülk açıklaması
Load loadDemands amount dize (int64 biçimi) Belirtilen türde gönderinin kapasite şartını tanımlar.
LoadLimit loadLimits maxLoad dize (int64 biçimi) Belirtilen türdeki aracın maksimum yük kapasitesini tanımlar.

Örnekler

Aşağıdaki örnekte, loadDemands türünü dize olarak ve amount özelliğini int64 biçiminde dize olarak ayarlayabileceğiniz bir yük talebinin yapısı gösterilmektedir:

"loadDemands": {
  "MATCHING_LOAD_TYPE": {
    "amount": "YOUR_LOAD_AMOUNT"
  }
}

Aşağıdaki örnekte, loadLimits türünü dize olarak, maxLoad mülkünü ise int64 biçiminde dize olarak ayarlayabileceğiniz en temel yükleme sınırı yapısı gösterilmektedir:

"loadLimits": {
  "MATCHING_LOAD_TYPE": {
    "maxLoad": "YOUR_MAX_LOAD"
  }
}

Deneyin

Kurgusal bir senaryo oluşturmak için yukarıdaki kod örneklerini kullanın. Bu senaryoda, 10 kilogram ağırlığında bir kargo ve 100 kilogram taşıyabilen bir aracınız var:

  1. loadDemands örneğinde, yükleme türünü weightKg olarak tanımlayın.

    Bunu yaptığınızda loadLimits örneğindeki yükleme türü de doldurulur ve yükleme türü paylaşılır. Gönderimin aracın sınırlarını kullanabilmesi için loadDemands ve loadLimits türlerinin eşleşmesi gerektiğini unutmayın.

  2. Aynı loadDemands örneğinde amount özelliğini 10 olarak ayarlayın.

    Bu, gönderinin 10 kilogram ağırlığında olduğu anlamına gelir.

  3. loadLimits örneğinde maxLoad özelliğini 100 olarak ayarlayın.

    Bu, aracın en fazla 100 kilogram taşıyabileceği anlamına gelir.

Önceden tanımlanmış bir tür grubu olmadığını unutmayın. Bu örnekte, kilogramları puana veya ağırlık yerine doğrusal ölçümlere dönüştürebilirsiniz. Bu esneklik, yükleme taleplerini ve sınırlarını kendi ihtiyaçlarınıza göre özelleştirmenize olanak tanır.

İstek örneği

Aşağıdaki örnekte, bir gönderimde loadDemands ve bir araçta loadLimits bulunan temel bir optimizeTours isteğinin yapısı gösterilmektedir:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 00.000000,
              "longitude": 00.000000
            }
          }
        ],
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "endLocation": {
          "latitude": 00.000000,
          "longitude": 00.000000
        },
        "costPerKilometer": 1.0,
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

Bir gönderimin birden fazla yükleme talebi, bir aracın ise birden fazla yükleme sınırı olabileceğini unutmayın. Bu sayede, filonuzun rotalarını optimize ederken dikkate alınacak karmaşık kısıtlamalar sağlayabilirsiniz.