비용 모델

비용 속성은 ShipmentModel.shipments.Shipment 및 ShipmentModel.vehicles.Vehicle 아래에 정의됩니다.

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

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

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

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

구조

다이어그램에 표시된 것처럼 비용 모델 속성은 다음과 같이 구성됩니다.

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

Essentials 체크리스트

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

속성

다음 표에는 비용 모델 속성이 나열되어 있습니다.

자녀 있음 속성 이름 숙소 유형 비용 - 기간: 숙박 시설 설명
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달러를 나타냅니다. 즉, 요청의 비용 모델 속성 값은 다음과 같습니다.

속성 시나리오
penaltyCost 10 예약된 날짜에 반려견을 데리러 오지 않은 고객에게 부과하는 벌금을 나타냅니다. 예정된 날짜에 강아지를 데리러 가지 않으면 고객의 서비스 총액에서 40달러가 할인됩니다.
fixedCost 30 차량 대출 납입금의 일일 비용을 나타냅니다. 일일 비용은 30달러입니다.
costPerKilometer 0.08 차량의 킬로미터당 휘발유 소비량을 나타냅니다. 차량이 이동하는 데 필요한 연료는 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: 모든 경로의 총비용을 합산한 값입니다.