iRB-Lab/py-ga-VRPTW

A Python Implementation of a Genetic Algorithm-based Solution to Vehicle Routing Problem with Time Windows

解決的問題

本專案提供一個用於求解時間窗車輛路徑問題(VRPTW)的Python實作。其目標是為一組車輛找到最優的配送路線,確保每位客戶都在指定的時間窗內被造訪,且不超過車輛的容量限制。

工作原理

本專案使用遺傳演算法(GA)來演化潛在的路徑解決方案。路徑被表示為一個「個體」(染色體),由客戶序列組成。該過程包括:

  • 解碼:根據車輛容量和時間限制,將客戶序列轉換為實際的子路徑。
  • 評估:根據運輸成本、車輛啟動成本,以及過早到達(等待成本)或過晚到達(延遲成本)的懲罰來計算解的適應度。
  • 選擇:使用輪盤賭選擇法選擇下一代的個體。
  • 交叉:應用部分匹配交叉(PMX)將兩個父代解的特徵組合起來。
  • 變異:使用逆序操作隨機反轉路徑的某一段,以保持遺傳多樣性。

適用對象

本工具適用於對物流工程、作業研究感興趣的人士,或正在學習遺傳演算法及其在組合最佳化問題中應用的學生。

主要特色

  • 支援基準測試:支援Solomon的VRPTW基準問題(隨機型、聚類型和混合型)。
  • 彈性資料輸入:支援文字與JSON格式的問題實例,並提供兩者之間轉換的實用工具。
  • 可自訂實例:允許使用者定義並執行自己的客製化路徑資料。
  • 詳細的GA實作:提供選擇、交叉、變異和適應度評估等核心GA元件的清晰實作。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案