BaseVrpクラスを作成
BaseVrpのメンバ変数をprotectedに変更
BaseVrpに存在している関数を削除
HostVrpクラスをBaseVrpクラスからの継承にした
DeviceVrpクラスの宣言
DeviceVrpの実装(ほとんど実装していない)
コンストラクタを作成
BaseVrpを抽象クラスに変更
HostVrpクラスをBaseVrp抽象クラスから派生
DeviceVrpクラスをBaseVrp抽象クラスから派生
BaseVrpを使うVehicle::visit()を作成
BaseVrpを使うVehicle::visit()がVehicleのcapacity_にdemandを加算することを確認
BaseVrpを使用したVehicle::computeCost()を作成
BaseVrpを使用したVehicle::computeCost()がちゃんと計算されることを確認
vrp_problemを使用しているVehicleのメンバ関数にdeprecatedをつけた
VehicleManager::isVisitAll(const BaseVrp& vrp) const 作成
VehicleManager::move(const BaseVrp& vrp, int customer) 作成
Create VehicleManager::computeTotalCost(const BaseVrp& vm) const
重複の削除
When all customer is visited, VehicleManager::isVisitAll returns true