本文源於 IMMC 2025 Problem C,研究家居塑膠回收是否真的減少溫室氣體排放。這個問題把環境科學、生命週期邊界、設施選址與數學建模連在一起。
回收悖論
回收可以減少塑膠污染,碳足跡卻取決於整條系統:
- 污染
- 食物殘留可能需要清洗;
- 紙標籤及混合物料影響分選;
- 污染可令部分收集物被棄置。
- 運輸
- 由家居到收集點;
- 由收集點到 sorting/reprocessing facility;
- 車輛載重、回程與路線影響每公斤排放。
- 處理
- 分選、清洗、粉碎、熔融及造粒使用能源與水;
- 不同 polymer、顏色與品質的 recovery yield 不同。
- 避免生產
- 再生料只有在真正取代原生塑膠時,才產生避免排放;
- replacement ratio 不一定是 1:1。
因此,問題不只是「回收有沒有排放」,而是:
在一致的 functional unit 與 system boundary 下,回收情境相對基準處理情境的淨生命週期排放是多少?
碳帳目
令 functional unit 為「每月由一戶家庭收集的塑膠」,淨影響可寫成
按塑膠類別 展開:
其中 是投入質量, 是回收產率, 是再生料取代原生料比例。這比原文
更清楚,因為後者把每個運輸階段重複加入同一個 ,而且 、 的物理意義與單位未一致。
流程效率
Material yield 可寫成
但原文使用
會在污染已經包含於 時重複懲罰。較合理做法是分開記錄 contamination fraction、sorting yield、reprocessing yield 及 substitution ratio。
設施選址
設 為需求/收集點、 為候選設施, 表示點 是否分配到設施 , 表示是否啟用:
約束為
可再加入最大 access distance、設施數、道路容量及公平約束。原文三重索引 混合塑膠類別、需求點、設施與區域,而且 assignment constraint 的索引不一致,不能直接視為可運行模型。
原 Python 參數
原專案為 PET、HDPE、LDPE 與 PP 設定:
| 類別 | 月質量 kg | washing factor | processing factor | efficiency | saving kg CO₂/kg |
|---|---|---|---|---|---|
| PET | 2.5 | 0.20 | 0.40 | 0.95 | 1.08 |
| HDPE | 1.8 | 0.30 | 0.50 | 0.92 | 1.08 |
| LDPE | 1.2 | 0.25 | 0.45 | 0.90 | 1.08 |
| PP | 1.5 | 0.28 | 0.48 | 0.88 | 1.08 |
這些數值在原文章沒有來源、地區、年份、能源 mix 或單位說明,而且四種 polymer 使用相同 co2_savings=1.08。它們只能作示意 input,不能支持「PET 95% 最可持續」等經驗結論。
核心計算為:
def calculate_household_footprint(
plastic_input,
washing_data,
transport_distance,
factors
):
totals = {
'washing_cf': 0.0,
'transport_cf': 0.0,
'processing_cf': 0.0,
'savings': 0.0,
'net_cf': 0.0,
'by_type': {}
}
for polymer, weight in plastic_input.items():
p = factors[polymer]
washing_cf = (
weight
* p['washing_liters_per_kg']
* (
washing_data['cold_water_cf']
+ washing_data['hot_water_ratio']
* washing_data['heating_cf']
)
)
transport_cf = (
weight * transport_distance
* p['transport_cf_per_kg_km']
)
processing_cf = (
weight * p['processing_cf_per_kg']
)
savings = (
weight
* p['yield']
* p['substitution_ratio']
* p['virgin_minus_recycled_cf']
)
net_cf = (
washing_cf + transport_cf
+ processing_cf - savings
)
totals['by_type'][polymer] = {
'washing_cf': washing_cf,
'transport_cf': transport_cf,
'processing_cf': processing_cf,
'savings': savings,
'net_cf': net_cf
}
for key in (
'washing_cf', 'transport_cf',
'processing_cf', 'savings', 'net_cf'
):
totals[key] += (
totals['by_type'][polymer][key]
)
return totals
這個結構要求每個 factor 有清楚單位及來源,亦避免把無因次 efficiency 直接乘入排放因子而不解釋。
原 appendix 實作問題
Carbon model
原 transport_cf = weight * distance * 0.1 沒有說明車輛載重,實際相當於每公斤每公里排放因子,但名稱只寫 transport_cf_per_km。processing_factor * efficiency * (1 + contamination) 亦把效率提高變成更高排放,未必符合物料流。
transport_efficiency = 1 - distance/100 在距離超過 100 km 時變成負數,不是物理效率。
Location model
calculate_location_score() 使用 self.environmental_impact,但 constructor 沒有定義;optimize_location() 只是把隨機人口密度與基建分數作 0.6/0.4 加權後取最大,沒有需求分配、距離、容量或碳排放,並非前述 facility-location optimization。
Sensitivity analysis
RecyclingAnalyzer.sensitivity_analysis() 呼叫未定義的 _calculate_parameter_impact(),不能運行。
Dashboard
Dashboard 的流程效率 [0.95,0.88,0.92,0.90] 是硬編碼;「優化後減少 30%」及「潛在減少 70%」亦只是把結果乘 0.7 及 0.3,並非模型輸出。
若 net_cf 為負數,直接以各 polymer 的負值畫 pie chart 亦沒有合理 part-to-whole 意義。
因此,下圖是輸入假設的視覺摘要,不是經驗驗證的碳 dashboard:
原文百分比不能當作結果
文章聲稱:
- 清洗佔 20–30%;
- 運輸佔 25–35%;
- 處理佔 30–40%;
- PET、HDPE、LDPE、PP 效率分別為 95%、92%、90%、88%;
- 都市適合多個小中心、鄉郊適合集中設施;
- 一分鐘內完成 real-time processing。
但原 code 沒有來源資料、情境比較、時間量度、選址求解或不確定性分析。這些數字至多是設定或敘述,不能稱為模型發現。
應如何建立可辯護研究
1. 固定 functional unit 與 baseline
例如比較「處理 1 tonne 分類後 PET」在:
- 回收;
- 焚化發電;
- 堆填;
- 原生塑膠生產被部分取代
之間的 net kg CO₂e。
2. 收集有來源的參數
- 本地電力與熱水排放因子;
- 收集車型、載重及實際路線;
- sorting 和 reprocessing yield;
- 殘渣處理;
- virgin/recycled resin 的 cradle-to-gate factors;
- substitution ratio;
- 家庭實際清洗水量。
3. 情境與不確定性
對 grid mix、運距、污染、yield、清洗方式與 substitution ratio 建立 distributions,報告 net saving 的區間及
4. 聯合選址
使用真實需求點、道路距離、候選地、固定建設成本與容量,解 facility-location model;再比較集中與分散設施的運輸和處理 economies of scale。
5. 分開多種環境目標
較低碳排放不等於較少 plastic leakage、毒性、水耗或微塑膠;應避免用單一 carbon score 代表整體可持續性。
結語
家居塑膠回收的碳影響確實由清洗、運輸、處理、污染與避免原生生產共同決定。這個建模框架有助列出帳目,也揭示設施選址與家庭行為的互動。
原專案 dashboard 使用大量未引用、硬編碼與隨機生成數值,部分程式亦不能運行,所以不能證明淨負碳足跡或最佳設施位置。真正有用的下一步,是把每個因子連到明確地區及資料來源,再報告 baseline-relative、帶不確定性的生命週期結果。
致謝
感謝 International Mathematical Modeling Challenge 提供問題情境,促使學生以數學模型探索家居回收系統。