流通業界の方々にプログラミング言語の教育を受けていただいたことがあります。
名古屋市では、30年前から、ハッカソン形式で、
何を作るかを目標を決めて、プログラミングを覚えてきていただいています。
プログラミング言語が覚えたいだけで、具体的な開発目標が設定できない方には、
自分が得意な領域の音楽・ゲームのプログラムを作るか、
ネットワークプログラミングを含めたWebの構築か、
コンパイラを作るか、OSを移植することを推奨してきました。
流通業界の方に参加していただいた場合に、これまで取り組んでいただいたことがあるのが、
配車管理システム
自動運搬車制御
自動倉庫制御システム
需要予測システム
購買・販売管理システム
勤務管理システム
冷凍管理システム
資源最適化システム
循環販売員(traveling sales person problem)問題
都市の集合と各2都市間の移動コスト(たとえば距離)が与えられたとき、全ての都市をちょうど一度ずつ巡り出発地に戻る巡回路のうちで総移動コストが最小のものを求める組合せ最適化問題
実際の配車、配送、要員割り当てでは、注文、需要、要員、配車、資源が流動的で、ある行動が他の行動に影響を及ぼす場合を考察する。
ある場所に商品を配送した時に、即売していて、追加注文が来た場合に、ある商品をその場でおろし、別の商品は別に発車することにした方が効率的な場合がある。
この判断はその都度行う場合があり、その判断に要する時間も考慮したシステムを考慮する。
また、配送の途中で、別の場所に行くことになった場合でも、その連絡が運転者に通じるまでの時間の遅れなどを時定数として捉え、システム全体での時定数の変動などを考慮する。
高速道路などに乗っている場合には、行先変更に距離と時間を考慮するかもしれない
道路工事、交通事故、渋滞などによる経路変更なども考慮するかもしれない。
実際に人間が判断している内容をシステムに入れ、機械学習させることにより、実用的な系を考慮する。
最適化の項目には、顧客満足度、収入、利益、輸送費用だけでなく、要員の達成感、業務満足度なども考慮するとよい。