---
# System prepended metadata

title: 協和商会

---

# 協和商会

## 業務について

- 当日に荷物を積み、当日に下ろす（積み日＝対象日）
- 事前に荷物を積みトラックに積みっぱなし、納品日に納品する
- 事前に荷物を積み、ヤードに下ろす。納品日にヤードから積み、納品日に納品先に納品する。
    - 「事前に荷物を積むトラック＝納品しにいくトラック」とは限らない

## ロジックについて

### 基本的な考え方
- 各トラックは一日に最大3件の業務をこなす
    - 3件の枠をそれぞれorderNとする
- 各トラックのその日の最終業務が、帰還する拠点に近くなるように配車予定を組みたい

### 大枠
1. 予定作成対象日を設定
2. インプットされた業務予定一覧から積み日、納品日が対象日である業務を特定
3. 各トラックについて、order1を埋める
4. 各トラックについて、order3を埋める
5. 残った業務予定がなくなる or 各トラックの予定が最大になるまでorder2を埋める
6. 対象日を＋１日、組んだ予定が実際に実行されたと仮定して2に戻り予定を組む

#### order1を埋める
- 対象日よりも前にトラックに積んだまま(ヤードを使用していない)＆納品日が対象日の業務について、荷を積んでいるトラックが納品する業務をorder1にいれる
    - トラックに積んでいる情報について、協和から受け取る予定
- 対象日より前にヤードにおいてある＆納品日が対象日の業務について、
order1が埋まっていないトラック＆荷物がおいてあるヤードとトラックが所属している拠点（ヤード）が同一であるトラックに業務を割り振る
- 積み日と納品日が対象日の業務について、order1が空いているトラックがなくなるまで、トラックの初期位置と業務の積み地が近くなるように業務を割り振る

#### order3を埋める
- 積み日が対象日＆納品日が未来日の業務＆ヤードを使う業務について、積み地とトラックの最終拠点が近くなるようにトラックに業務を割り振る
- 積み日が対象日＆納品日が未来日の業務＆トラックに積みっぱなし（ヤードを使わない）業務について、積み地とトラックの最終拠点が近くなるようにトラックに業務を割り振る
- 積み日と納品日が対象日の業務について、order3が空いているトラックがなくなるまで、トラックの最終拠点と業務の納品地が近くなるように業務を割り振る

#### order2を埋める
- 残った業務がなくなる OR トラックがすべて埋まるまで残りの業務を割り振る
    - order1の業務の納品地とorder2の業務の積み地、order2の業務の納品ちとorder3の業務の積み地、それぞれの合計値が少なくなるようにorder2に業務を割り振る