プログラミングがうまく書けません
Posted: 2008年12月03日(水) 01:50
配送センター(1つ)から、納品先へ製品を届けるトラックの台数を最小化することが目的です。簡単に説明させていただきますと、(まだアルゴリズムがうまく書けていないのですが…)
制約条件といたしましては
①納品先毎に個別の指定時間を設ける場合、指定無し(納品回数に関連:1日1回等)を加える場合と、2つの条件設定を考えております。
②物流センターからの出荷時間は24時間可能のものとする
まずトラック1台からスタートして、もし24時を過ぎたら2台目を発車させる…という具合に、トラックを増やしていきます。
ステップ1:配送先の決定.
例) 配送優先順位 182976534
納品先 123456789
この場合、優先順位の最も高い納品先4へ配送する.
ステップ2:
①顧客の需要量がトラック積載量よりも多かった時,
・需要量=需要量-トラック積載量
・トラック積載量=0
⇒ステップ4へ
②顧客の需要量がトラック積載量よりも少なかった時,
・トラック積載量=トラック積載量-需要量
・需要量=0
・納品先を消す
⇒ステップ5へ
ステップ4:
倉庫へ戻り満タンにする.
トラック積載量=トラック積載量+10
⇒ステップ1へ
ステップ5:発車可能時刻+配送時間+サービス時間+配送時間<24時ならステップ7へ
それ以外ならステップ1へ
ステップ6:
トラック=トラック+1
⇒需要量が0以上の配送場所があったらステップ7へ.
なかったら終了
ステップ7:ルート選択
顧客が複数だったら,ステップ1へ
顧客が一つだったら,ステップ2へ
理解していただけたか不安なんですけれども、説明が下手で申し訳ございません。
こちらのファイルのfunction関数を上記のアルゴリズムで書きたいです。
制約条件といたしましては
①納品先毎に個別の指定時間を設ける場合、指定無し(納品回数に関連:1日1回等)を加える場合と、2つの条件設定を考えております。
②物流センターからの出荷時間は24時間可能のものとする
まずトラック1台からスタートして、もし24時を過ぎたら2台目を発車させる…という具合に、トラックを増やしていきます。
ステップ1:配送先の決定.
例) 配送優先順位 182976534
納品先 123456789
この場合、優先順位の最も高い納品先4へ配送する.
ステップ2:
①顧客の需要量がトラック積載量よりも多かった時,
・需要量=需要量-トラック積載量
・トラック積載量=0
⇒ステップ4へ
②顧客の需要量がトラック積載量よりも少なかった時,
・トラック積載量=トラック積載量-需要量
・需要量=0
・納品先を消す
⇒ステップ5へ
ステップ4:
倉庫へ戻り満タンにする.
トラック積載量=トラック積載量+10
⇒ステップ1へ
ステップ5:発車可能時刻+配送時間+サービス時間+配送時間<24時ならステップ7へ
それ以外ならステップ1へ
ステップ6:
トラック=トラック+1
⇒需要量が0以上の配送場所があったらステップ7へ.
なかったら終了
ステップ7:ルート選択
顧客が複数だったら,ステップ1へ
顧客が一つだったら,ステップ2へ
理解していただけたか不安なんですけれども、説明が下手で申し訳ございません。
こちらのファイルのfunction関数を上記のアルゴリズムで書きたいです。