비용 모델

비용 속성은 ShipmentModel.shipments.Shipment 및 ShipmentModel.vehicles.Vehicle에 정의되어 있습니다.

Route Optimization API의 주요 목표는 비용이 가장 적은 경로를 찾는 것입니다. 따라서 비용 모델은 경로 최적화의 주요 동인입니다.

비용 모델은 전 세계, 차량, 배송 비용을 지정하는 속성 집합입니다.

비용 모델 속성은 다음과 같은 유형의 최적화 목표를 지원합니다.

  • 효율적인 차량 할당 및 경로
  • 비용 효율적인 수령 및 배송 시간
  • 중요한 배송의 우선순위 지정

구조

다이어그램에서 볼 수 있듯이 비용 모델 속성은 다음과 같이 구성됩니다.

이 문서에서는 필수 비용 모델 매개변수만 강조 표시합니다. 전체 비용 매개변수 집합은 참조 문서를 참고하세요.

기본사항 체크리스트

다음 체크리스트에서는 잠재적인 비용 관련 실수를 방지하는 필수 지식을 설명합니다. 이 목록은 요청을 확인하고 응답 문제를 해결하는 데 도움이 됩니다.

차량당 costPerHour, costPerKilometer, costPerTraveledHour 중 하나 이상을

속성

다음 표에는 비용 모델 속성이 나와 있으며 각 속성에 대한 설명이 제공됩니다.

자녀 있음 속성 이름 숙소 유형 비용당 숙박 시설 설명
Shipment penaltyCost 숫자 건너뛴 배송 배송 건너뛰기로 인해 발생한 비용입니다.
완료 비용이 패널티 비용을 초과하면 API가 배송을 건너뜁니다.
  • penaltyCost를 설정하면 비용이 더 높은 배송의 우선순위가 높아집니다.
  • 배송 penaltyCost을 설정하지 않으면 배송이 필수가 됩니다.
  • 배송 penaltyCost을 0으로 명시적으로 설정하면 다른 제약 조건에서 요구하지 않는 한 API가 항상 배송을 건너뜁니다.
Vehicle fixedCost 숫자 배송 이 차량이 배송을 처리하는 데 사용되는 경우 적용되는 고정 비용입니다.
costPerHour 숫자 시간 이동, 대기, 방문, 휴식 시간을 포함한 시간당 차량 운영 비용입니다.
이 비용이 증가하면 최적화 도구는 최단 경로가 아닐 수 있는 더 빠른 경로를 찾으려고 시도합니다.
이 속성은 간단하고 완전하여 차량당 비용으로 효과적으로 사용할 수 있습니다.
costPerKilometer 숫자 킬로미터 연료비 및 감가상각된 차량 유지보수 비용과 같이 차량의 주행 거리당 비용입니다.
costPerTraveledHour 숫자 시간 대기, 방문, 휴식 시간을 제외하고 이동 중인 시간당 차량 운영 비용입니다. 이렇게 하면 더 짧은 경로보다 더 빠른 경로가 우선순위가 높아집니다.

이 섹션에서는 다음 세 가지 유형의 예시를 다룹니다.

  • 비용 모델 속성의 구조를 보여주는 코드 샘플
  • 비용 모델 속성을 사용하여 비즈니스 목표를 달성하는 한 가지 방법을 보여주는 시나리오 예시
  • 예시 시나리오에 설정된 값이 포함된 요청 예시

코드 샘플

다음 코드 샘플은 Shipment의 비용 모델 속성 구조를 보여줍니다.

{
  "model": {
    "shipments": [ ...
      {
        "penaltyCost": PENALTY_COST
      }
    ],
    "vehicles": [ ...
    ]
  }
}

다음 코드 샘플은 Vehicle의 비용 모델 속성 구조를 보여줍니다.

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "fixedCost": FIXED_COST,
        "costPerKilometer": KILOMETER_COST,
        "costPerHour": HOUR_COST,
        "costPerTraveledHour": TRAVELED_HOUR_COST
      }
    ]
  }
}

예시 시나리오

이 섹션에서는 강아지 보육 시설을 운영하는 시나리오를 설명합니다. 집에서 개를 데려오는 데 사용하는 트럭의 경로를 최적화하고 있습니다. 이 시나리오에서는 최적화 도구가 경로를 제공할 때 강아지 수거 및 차량 운영과 관련된 비용을 고려하도록 해야 합니다.

이 예시에서 비용 단위 1개는 1달러를 나타냅니다. 즉, 요청의 비용 모델 속성 값은 다음과 같습니다.

속성 시나리오
penaltyCost 10 예약된 날짜에 강아지를 찾으러 오지 않은 고객에게 부과하는 벌금을 나타냅니다. 예약된 날짜에 강아지를 수거하지 않으면 고객에게 서비스 총 금액에서 40달러가 할인됩니다.
fixedCost 30 차량 대출에 대한 일일 비용으로, 하루에 30달러입니다.
costPerKilometer 0.08 차량이 1km를 주행할 때 소비하는 휘발유의 양을 나타냅니다. 차량을 이동하려면 1km당 0.04갤런의 연료가 필요하며 거주 지역의 갤런당 가격은 2달러입니다.
costPerHour 27 차량 운전자에게 지급하는 금액을 나타냅니다. 운전자에게 시간당 27달러를 지급합니다.
costPerTraveledHour 2.5 이동 중인 강아지를 위해 차량의 에어컨을 사용할 때 시간당 지불해야 하는 금액을 나타냅니다. 차량이 움직이지 않을 때 운전자는 뒷문 문을 열고 에어컨을 끌 수 있습니다.

최적화 도구는 비용 매개변수를 기반으로 사용자에게 명확하지 않지만 최적화를 통해 확인할 수 있는 절충점을 만들 수 있습니다.

다음 다이어그램은 최적화 도구가 점선 빨간색 선의 트래픽을 피하기 위해 더 길지만 더 빠른 경로인 녹색 파선 경로를 선택할 수 있는 예를 보여줍니다.

차량의 경로는 두 가지가 있습니다. 하나는 녹색 점선으로 표시되며 더 길지만 사고가 없고, 다른 하나는 빨간색 점선으로 표시되며 더 짧지만 중간에 자동차 사고가 있습니다.

이 시나리오에서 두 경로의 비용 잔액은 다음과 같습니다.

최적화 도구는 비용 효율적인 경로를 제공하는 것 외에도 응답 속성에 전송 경로의 총 비용 합계를 제공합니다.

요청 예

다음 예는 예시 시나리오에 설정된 값을 통합한 기본 optimizeTours 요청의 구조를 보여줍니다.

{
  "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
      }
    ]
  }
}

응답 속성

OptimizeToursResponse 메시지에는 경로를 완료하는 과정에서 발생한 비용을 설명하는 비용 속성이 있습니다.

  • metrics.costs: 비용 관련 요청 필드별로 분류된 모든 경로의 총 비용입니다.
  • metrics.totalCost: 모든 경로의 총 비용을 합산한 값입니다.