SlideShare a Scribd company logo
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

More Related Content

More from FEG (20)

PDF
Unsupervised learning in data clustering
FEG
 
PDF
CNN_Image Classification for deep learning.pdf
FEG
 
PDF
Sequence Model with practicing hands on coding.pdf
FEG
 
PDF
Seq2seq Model introduction with practicing hands on coding.pdf
FEG
 
PDF
AIGEN introduction with practicing hands on coding.pdf
FEG
 
PDF
資料視覺化_Exploation_Data_Analysis_20241015.pdf
FEG
 
PDF
非監督是學習_Kmeans_process_visualization20241110.pdf
FEG
 
PDF
Sequence Model pytorch at colab with gpu.pdf
FEG
 
PDF
學院碩士班_非監督式學習_使用Orange3直接使用_分群_20240417.pdf
FEG
 
PDF
資料視覺化_透過Orange3進行_無須寫程式直接使用_碩士學程_202403.pdf
FEG
 
PDF
Pytorch cnn netowork introduction 20240318
FEG
 
PDF
2023 Decision Tree analysis in business practices
FEG
 
PDF
2023 Clustering analysis using Python from scratch
FEG
 
PDF
2023 Data visualization using Python from scratch
FEG
 
PDF
2023 Supervised Learning for Orange3 from scratch
FEG
 
PDF
2023 Supervised_Learning_Association_Rules
FEG
 
PDF
202312 Exploration Data Analysis Visualization (English version)
FEG
 
PDF
202312 Exploration of Data Analysis Visualization
FEG
 
PDF
Transfer Learning (20230516)
FEG
 
PDF
Image Classification (20230411)
FEG
 
Unsupervised learning in data clustering
FEG
 
CNN_Image Classification for deep learning.pdf
FEG
 
Sequence Model with practicing hands on coding.pdf
FEG
 
Seq2seq Model introduction with practicing hands on coding.pdf
FEG
 
AIGEN introduction with practicing hands on coding.pdf
FEG
 
資料視覺化_Exploation_Data_Analysis_20241015.pdf
FEG
 
非監督是學習_Kmeans_process_visualization20241110.pdf
FEG
 
Sequence Model pytorch at colab with gpu.pdf
FEG
 
學院碩士班_非監督式學習_使用Orange3直接使用_分群_20240417.pdf
FEG
 
資料視覺化_透過Orange3進行_無須寫程式直接使用_碩士學程_202403.pdf
FEG
 
Pytorch cnn netowork introduction 20240318
FEG
 
2023 Decision Tree analysis in business practices
FEG
 
2023 Clustering analysis using Python from scratch
FEG
 
2023 Data visualization using Python from scratch
FEG
 
2023 Supervised Learning for Orange3 from scratch
FEG
 
2023 Supervised_Learning_Association_Rules
FEG
 
202312 Exploration Data Analysis Visualization (English version)
FEG
 
202312 Exploration of Data Analysis Visualization
FEG
 
Transfer Learning (20230516)
FEG
 
Image Classification (20230411)
FEG
 

Operation_research_Linear_programming_20241112.pdf