Operation Research
Orozco Hsu
2024-11-12
1
About me
• Education
• NCU (MIS)、NCCU (CS)
• Experiences
• Telecom big data Innovation
• Retail Media Network (RMN)
• Customer Data Platform (CDP)
• Know-your-customer (KYC)
• Digital Transformation
• Research
• Data Ops (ML Ops)
• Business Data Analysis, AI
2
Tutorial
Content
3
整數線性規劃
時間與成本的權衡(專案趕工)
作業
建立環境
不確定時間的專案排程
配送及網路模式
專案排程技術(PERT/CPM)
建立環境
• Anaconda on Windows
• https://www.anaconda.com/products/distribution
• Python 3.9/64-Bit Graphical Installer/594 MB
• Miniconda on Windows
• https://docs.conda.io/en/latest/miniconda.html
4
記得打勾
建立環境
• 進入命令提示字元
5
建立環境
• 切換執行環境
6
建立環境
• 安裝套件
• pip install jupyterlab
• pip install PuLP
• pip install matplotlib
• pip install pandas
• pip install networkx
7
PuLP 與 scipy 都是常見的 Python 用來實現線性規劃的函式庫
啟動環境
• 開啟 jupyterlab
8
配送及網路模式
➢ 透過網路流量分析,優化供應鏈運輸、資源分配與最大流通量
• 供應鏈模式
• 包含運輸問題和轉運問題,目標為最小化成本。
• 指派問題與最短路徑問題
• 決策上涉及資源分配、尋找兩點間最短路徑。
• 最大流量問題
• 求解最大流通量的限制。
➢ 使用的技術包括線性規劃、動態規劃、模擬、賽局理論、數據分析
➢ 強調在多變和複雜的環境下進行科學的決策,以達到最佳化的效果
9
動態規劃: 找出最佳化問題。例如: 矩陣鏈乘積,找出最佳的相乘順序,不需要浪費多餘的運算力。
模擬: 為求出最佳化問題,往往透過建構系統模型預測與分析複雜系統行為。
配送及網路模式
➢ 最低成本將物料從供應點 (Supply ) 送達需求點 (Demand)
• 供應點(S1, S2, S3)與需求點(D1, D2, D3)之間的運輸成本網路。
• 箭頭表示各供應點到需求點的運輸路徑。
10
S1 D1
S2
S3
D2
D3
配送及網路模式 (程式範例)
11
配送及網路模式 (程式範例)
12
A_eq: 確保每個需求點的總供應量等於其需求
A_ub: 確保每個供應點的總運輸量不超過其供應
配送及網路模式 (程式範例)
13
整數線性規劃
➢ 整數最佳化方法
• 類型與特性
• 全整數、混合整數及0-1整數規劃,適用於決策變數的整數需求。
• 應用
• 用於解決資源分配、排程等需要整數解的問題。
• 如房產投資的決策與產能配置問題,透過整數限制求最佳解。
14
整數線性規劃 (程式範例)
➢ 問題
• 假設有一家公司要決定購買桌子和椅子的數量,以最大化利潤
• 每張桌子獲利 40 美元,每張椅子獲利 30 美元
• 公司有木材和人力資源限制
• 每張桌子需要 3 單位木材和 2 單位人力
• 每張椅子需要 1 單位木材和 1 單位人力
• 公司最多有 12 單位木材和 8 單位人力
15
整數線性規劃 (程式範例)
16
整數線性規劃 (程式範例)
17
專案排程技術(PERT/CPM)
➢ PERT與CPM的應用
• 用於專案排程與控制,例如建設、研發等大型專案。
➢ 要徑法
• 決定專案的最長路徑來確定總工期及關鍵作業。
➢ 預測與寬裕時間
• 透過順向與逆向計算,找出各作業的最早與最遲時間及可用寬裕。
18
專案排程技術(PERT/CPM)
➢ 問題
• 模擬一個簡單的專案,計算任務的最早開始時間、最早完成時間以及確
定專案的總工期。
19
Directed Acyclic Graph (DAG):
在圖論中,如果一個有向圖從任意頂點出發無法經過若干條邊回到該點,則這個圖是一個有向無環圖
專案排程技術 (程式範例)
20
專案排程技術 (程式範例)
21
專案排程技術 (程式範例)
22
不確定時間的專案排程
➢ 預期作業時間估計
• 利用樂觀 (O)、悲觀 (P)和最可能時間 (M) 估算作業的期望時間。
➢ 作業變異性
• 分析作業的變異數和標準差,並進一步評估專案的完工機率。當限制條
件(右側值)的變動。
➢ 路徑變異
• 計算要徑路徑的總變異,確保在變異影響下依然能掌控專案工期。
23
樂觀時間: Optimistic Time; 悲觀時間: Pessimistic Time; 最可能時間: Most Likely Time
不確定時間的專案排程 (程式範例)
➢ 問題
• 不確定時間的專案排程範例,預期完成時間和專案總工期。
• 根據 PERT 公式計算每個活動的預期時間與標準差
24
不確定時間的專案排程 (程式範例)
25
不確定時間的專案排程 (程式範例)
26
不確定時間的專案排程 (程式範例)
27
不確定時間的專案排程 (程式範例)
28
時間與成本的權衡(專案趕工)
➢ 趕工策略
• 在工期不足的情況下,決定作業時間縮短的方案。
➢ 成本與時間分析
• 比較正常作業成本與趕工成本,找出單位時間內的趕工 (Crashing) 成本。
➢ 決策依據
• 根據趕工成本及工期需求,平衡成本及工期以優化專案排程。
• 應用
• 在專案排程中,當工期不足時,為了在限定時間內完成專案,透過趕工的方式
縮短某些關鍵活動的時間。
• 趕工會帶來額外的成本,因此必須在時間與成本間找到最佳平衡。
29
時間與成本的權衡(專案趕工)
• 問題
• 某專案的原始計畫中,完工時間為 20 天,但現在被要求在 16 天內完成。該專
案包含 5 個活動,每個活動的正常時間、趕工時間、正常成本和趕工成本如下
• 目標
• 選擇適合的活動進行趕工,以便在 16 天內完成專案,同時使趕工成本最小化
30
時間與成本的權衡(專案趕工)(程式範例)
31
單位趕工成本:計算每個活動的「趕工成本 - 正常成本」除以「正常時間 - 趕工時間」,
得到每縮短一天所需的趕工成本
排序:優先選擇單位趕工成本較低的活動,這樣能以最低成本達成所需的工期
時間與成本的權衡(專案趕工)(程式範例)
32
趕工策略:逐步縮短每個活動的時間,直到專案總工期達到目標工期。
作業 1
(物流配送及成本最小化的整數線性規劃問題)
• 假設某物流公司需將物品從三個倉庫配送到三個需求點
• 每個倉庫的最大供應量和每個需求點的需求量已知
33
加分題
作業 1
(物流配送及成本最小化的整數線性規劃問題)
• 配送路徑的單位運輸成本如下
• 目標
• 選擇最佳配送方案以最小化總成本,並且每條配送路徑的數量須為整數
34
加分題
作業 2
(不確定時間的專案排程與成本權衡)
• 某公司正在進行一個專案,包含五個活動,在不確定時間的條件下完成專案
並最小化趕工成本。
• 目標
• 計算每個活動的預期時間,並在專案完工時間不足的情況下,決定最低
成本的趕工策略以縮短專案工期
35

Operation_research_Linear_programming_20241112.pdf